Jump to content

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


garwel

Recommended Posts

On 2/6/2022 at 11:41 AM, flart said:

side effect of a new system: panicking Meg, that became tourist, has better health change than others

HszYZ9K.jpeg

Yes, it's quite likely and even, to a degree, intended. After all, when you give up on your obligations, you can at last chill out.

Link to comment
Share on other sites

The problem with contracts creating kerbal is back

Spoiler
[ERR 13:22:37.008] Exception handling event onKerbalCreated in class KerbalHealthScenario:System.NullReferenceException: Object reference not set to an instance of an object
  at KerbalHealth.KerbalHealthStatus.GetDefaultMaxHP (ProtoCrewMember pcm) [0x0000f] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at KerbalHealth.KerbalHealthStatus.get_MaxHP () [0x00006] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at KerbalHealth.KerbalHealthStatus.set_HP (System.Double value) [0x00000] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at KerbalHealth.KerbalHealthStatus..ctor (ProtoCrewMember pcm) [0x00069] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at KerbalHealth.KerbalHealthList.Add (ProtoCrewMember pcm) [0x00040] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at KerbalHealth.KerbalHealthScenario.OnKerbalAdded (ProtoCrewMember pcm) [0x0005e] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at EventData`1[T].Fire (T data) [0x000b0] in <39c0323fb6b449a4aaf3465c00ed3c8d>:0 

[EXC 13:22:37.011] NullReferenceException: Object reference not set to an instance of an object
	KerbalHealth.KerbalHealthStatus.GetDefaultMaxHP (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
	KerbalHealth.KerbalHealthStatus.get_MaxHP () (at <d6586013e67e4b84ae4c113486e35f56>:0)
	KerbalHealth.KerbalHealthStatus.set_HP (System.Double value) (at <d6586013e67e4b84ae4c113486e35f56>:0)
	KerbalHealth.KerbalHealthStatus..ctor (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
	KerbalHealth.KerbalHealthList.Add (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
	KerbalHealth.KerbalHealthScenario.OnKerbalAdded (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
	EventData`1[T].Fire (T data) (at <39c0323fb6b449a4aaf3465c00ed3c8d>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:LogException(Exception)
	EventData`1:Fire(ProtoCrewMember)
	KerbalRoster:AddCrewMember(ProtoCrewMember)
	KerbalRoster:GetNewKerbal(KerbalType)
	ContractConfigurator.Kerbal:GenerateKerbal()
	ContractConfigurator.Behaviour.SpawnPassengers:OnAccepted()
	ContractConfigurator.ContractBehaviour:Accept()
	ContractConfigurator.ConfiguredContract:OnAccepted()
	Contracts.Contract:SetState(State)
	Contracts.Contract:Accept()
	ContractConfigurator.Util.MissionControlUI:OnClickAccept()
	UnityEngine.EventSystems.EventSystem:Update()
[LOG 13:22:37.013] [KerbalHealth] OnKerbalNameChanged('Helzon Kerman', 'Rados Kerman', 'Helzon Kerman')
[LOG 13:22:37.016] [KerbalHealth] ERROR: Could not find 'Rados Kerman'.
[LOG 13:22:37.018] [KerbalHealth] OnKerbalNameChanged('Helzon Kerman', 'Rados Kerman', 'Helzon Kerman')
[LOG 13:22:37.020] [KerbalHealth] ERROR: Could not find 'Rados Kerman'.
[LOG 13:22:37.023] [KerbalHealth] OnKerbalNameChanged('Helzon Kerman', 'Rados Kerman', 'Helzon Kerman')
[LOG 13:22:37.025] [KerbalHealth] ERROR: Could not find 'Rados Kerman'.
[LOG 13:22:37.028] [KerbalHealth] OnKerbalNameChanged('Helzon Kerman', 'Rados Kerman', 'Helzon Kerman')
[LOG 13:22:37.030] [KerbalHealth] ERROR: Could not find 'Rados Kerman'.
[LOG 13:22:37.033] [KerbalHealth] OnKerbalNameChanged('Helzon Kerman', 'Rados Kerman', 'Helzon Kerman')
[LOG 13:22:37.035] [KerbalHealth] ERROR: Could not find 'Rados Kerman'.
[LOG 13:22:37.038] [KerbalHealth] OnKerbalAdded('Wilgar Kerman')
[LOG 13:22:37.041] [KerbalHealth] Registering Wilgar Kerman.
[ERR 13:22:37.043] Exception handling event onKerbalCreated in class KerbalHealthScenario:System.NullReferenceException: Object reference not set to an instance of an object
  at KerbalHealth.KerbalHealthStatus.GetDefaultMaxHP (ProtoCrewMember pcm) [0x0000f] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at KerbalHealth.KerbalHealthStatus.get_MaxHP () [0x00006] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at KerbalHealth.KerbalHealthStatus.set_HP (System.Double value) [0x00000] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at KerbalHealth.KerbalHealthStatus..ctor (ProtoCrewMember pcm) [0x00069] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at KerbalHealth.KerbalHealthList.Add (ProtoCrewMember pcm) [0x00040] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at KerbalHealth.KerbalHealthScenario.OnKerbalAdded (ProtoCrewMember pcm) [0x0005e] in <d6586013e67e4b84ae4c113486e35f56>:0 
  at EventData`1[T].Fire (T data) [0x000b0] in <39c0323fb6b449a4aaf3465c00ed3c8d>:0 

[EXC 13:22:37.046] NullReferenceException: Object reference not set to an instance of an object
	KerbalHealth.KerbalHealthStatus.GetDefaultMaxHP (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
	KerbalHealth.KerbalHealthStatus.get_MaxHP () (at <d6586013e67e4b84ae4c113486e35f56>:0)
	KerbalHealth.KerbalHealthStatus.set_HP (System.Double value) (at <d6586013e67e4b84ae4c113486e35f56>:0)
	KerbalHealth.KerbalHealthStatus..ctor (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
	KerbalHealth.KerbalHealthList.Add (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
	KerbalHealth.KerbalHealthScenario.OnKerbalAdded (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
	EventData`1[T].Fire (T data) (at <39c0323fb6b449a4aaf3465c00ed3c8d>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:LogException(Exception)
	EventData`1:Fire(ProtoCrewMember)
	KerbalRoster:AddCrewMember(ProtoCrewMember)
	KerbalRoster:GetNewKerbal(KerbalType)
	ContractConfigurator.Kerbal:GenerateKerbal()
	ContractConfigurator.Behaviour.SpawnPassengers:OnAccepted()
	ContractConfigurator.ContractBehaviour:Accept()
	ContractConfigurator.ConfiguredContract:OnAccepted()
	Contracts.Contract:SetState(State)
	Contracts.Contract:Accept()
	ContractConfigurator.Util.MissionControlUI:OnClickAccept()
	UnityEngine.EventSystems.EventSystem:Update()
[LOG 13:22:37.048] [KerbalHealth] OnKerbalNameChanged('Sonwin Kerman', 'Wilgar Kerman', 'Sonwin Kerman')
[LOG 13:22:37.051] [KerbalHealth] ERROR: Could not find 'Wilgar Kerman'.
[LOG 13:22:37.053] [KerbalHealth] OnKerbalNameChanged('Sonwin Kerman', 'Wilgar Kerman', 'Sonwin Kerman')
[LOG 13:22:37.055] [KerbalHealth] ERROR: Could not find 'Wilgar Kerman'.
[LOG 13:22:37.058] [KerbalHealth] OnKerbalNameChanged('Sonwin Kerman', 'Wilgar Kerman', 'Sonwin Kerman')
[LOG 13:22:37.060] [KerbalHealth] ERROR: Could not find 'Wilgar Kerman'.
[LOG 13:22:37.063] [KerbalHealth] OnKerbalNameChanged('Sonwin Kerman', 'Wilgar Kerman', 'Sonwin Kerman')
[LOG 13:22:37.065] [KerbalHealth] ERROR: Could not find 'Wilgar Kerman'.
[LOG 13:22:37.068] [KerbalHealth] OnKerbalNameChanged('Sonwin Kerman', 'Wilgar Kerman', 'Sonwin Kerman')
[LOG 13:22:37.070] [KerbalHealth] ERROR: Could not find 'Wilgar Kerman'.

 

ksp.log https://1drv.ms/u/s!Alncj27YxKc-iB_Erp_j_jjlFk6T

 

 

Also Meg in the Panic cycle - she is acquiring panic condition every time she is losing it

Quote

message = y11, d238, 2:50: Meg Kerman has acquired Panic condition! Meg Kerman is panicking and refuses to cooperate. Kerbopsychologists say it should pass within a day or two.
message = y11, d238, 2:50: Meg Kerman has lost Panic condition!
message = y11, d227, 3:25: Meg Kerman has acquired Panic condition! Meg Kerman is panicking and refuses to cooperate. Kerbopsychologists say it should pass within a day or two.
message = y11, d227, 3:25: Meg Kerman has lost Panic condition!

 

I was trying to manually remove Panic in the save file, but Meg was getting the Panic condition a few moments after loading save.

For now I fixed the problem by removing Meg, and creating new kerbal Meg Jr.
 

Edited by flart
Link to comment
Share on other sites

I have NRE spam

Spoiler

[EXC 23:01:17.397] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 23:01:17.480] NullReferenceException: Object reference not set to an instance of an object
    SentinelMission.SentinelScenario+<ProcessSentinelScan>d__15.MoveNext () (at <39c0323fb6b449a4aaf3465c00ed3c8d>:0)
    UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <12e76cd50cc64cf19e759e981cb725af>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 23:01:18.426] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 23:01:19.018] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)


 

Link to comment
Share on other sites

  • 1 month later...

Added some radiation shielding to the SSPX crew tubes - figured that as part of stations/ships they would be shielded, and would help contribute to the rad shielding for the craft. 

    // 1.25m rigid parts (PAS)
    // ---------------------

	@PART[sspx-tube-125-3,sspx-adapter-125-25-2,sspx-hub-125-1]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 0.5
		}
	}
	@PART[sspx-tube-125-2]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 1
		}
	}
	@PART[sspx-tube-125-1]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 2
		}
	}

    // 1.875m rigid parts (PMA)
    // ------------------

	@PART[sspx-tube-1875-3,sspx-adapter-1875-125-2]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 0.75
		}
	}
	@PART[sspx-tube-1875-2]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 1.5
		}
	}
	@PART[sspx-tube-1875-1]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 3
		}
	}

    // 2.5m rigid parts (PPD)
    // ------------------

	@PART[sspx-tube-25-3,sspx-adapter-25-375-1,sspx-adapter-25-1875-1]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 1
		}
	}
	@PART[sspx-tube-25-2,sspx-hub-25-1]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 2
		}
	}
	@PART[sspx-tube-25-1]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 4
		}
	}

    // 3.75m rigid parts (PXL)
    // ------------------

	@PART[sspx-tube-375-3,sspx-adapter-375-5-1]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 1.25
		}
	}
	@PART[sspx-tube-375-2]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 2.5
		}
	}
	@PART[sspx-tube-375-1]:NEEDS[StationPartsExpansionRedux]:AFTER[KerbalHealth]
	{
		RESOURCE
		{
			name = RadiationShielding
			amount = 0
			maxAmount = 5
		}
	}

 

Edited by OldMold
added hubs and adapters
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...

So, a bit of an odd issue: I have a flight going to the Mun. My craft has a working connection to KSC (relayed once via a probe), but my pilot is still suffering the "Isolation" penalty. Has anyone else encountered this? Or is the connection required to be direct, rather than via relay? (I am using RemoteTech, could that cause any issue?)

EDIT: Please disregard, don't know how I missed the answer in the info the first time, but have seen now that RemoteTech causes a conflict with this one. Sorry for the trouble.

Edited by MunarEclipse
Link to comment
Share on other sites

  • 2 months later...
  • 3 weeks later...
On 8/20/2022 at 2:13 PM, infinite_monkey said:

I have both Kerbal Health and Kerbalism installed, with the radiation model set to Kerbalism. But now I have 2 shielding resources available: Shielding and RadShield. Which one do I need? Should I disable Kerbalism's health status?

The real choice is whether you want Kerbalism or Kerbal Health to show radiation effects; you should then disable the other mod's radiation features (you may of course keep both, but then you'll double your worries). If you keep Kerbal Health's, IIRC, both Shielding and RadShield will be taken into account for shielding calculations, even when the raw (outside the spaceship) radiation data is taken from Kerbalism. If you choose to keep Kerbalism's radiation only, I think RadShield will be ignored.

On 9/6/2022 at 5:59 PM, Syczek said:

Its there any way to use it with Remote Tech(i am used to this mod),even if it is a crutch way to do so??

Well, you may assume that your kerbals always have a connection home and just set the Isolation factor to 0. I don't think there is any other option.

Link to comment
Share on other sites

6 hours ago, garwel said:

The real choice is whether you want Kerbalism or Kerbal Health to show radiation effects; you should then disable the other mod's radiation features (you may of course keep both, but then you'll double your worries). If you keep Kerbal Health's, IIRC, both Shielding and RadShield will be taken into account for shielding calculations, even when the raw (outside the spaceship) radiation data is taken from Kerbalism. If you choose to keep Kerbalism's radiation only, I think RadShield will be ignored.

Well, you may assume that your kerbals always have a connection home and just set the Isolation factor to 0. I don't think there is any other option.

Well, I guess it's only way. I doubt Rt 2.0.0 will ever come

Link to comment
Share on other sites

  • 1 month later...

Hullo there!

I've been having an odd bug in this current save.

I have MOLE, and created a small rover with a lab and some experiments, along with some deployable EVA science. I drove it a bit away from KSC, to the anomaly on the KSC peninsula, set up a goo experiment with control and power, then started a long-term (36 hour) Power Tool experiment.

All was well for a few missions. I finished an airplane mission, and time-warped to the next morning. All of a sudden I went into Mission Control, accepted a couple of new missions, and... the game soft-crashed, stuck in Mission Control. Odd...

So I restarted the game, time warped, and tried accepting just one mission, thinking the other mission was the problem. Nope, still froze.

Restart again, go into mission control, no time warp. This time no crash.

I started to get a sneaking suspicion it had to do with my little rover-base by the anomaly (which is within physics range of KSC).

Because Unity, the rover-base's wheels slide and jitter around slightly on the very small 2° slope by the anomaly... toward the deployed surface experiments. I started to suspect that over time, the base was sliding into one of the experiments under warp and shenanigans were ensuing. So I tried driving the rover away from the experiments a little, and... voila! Several more in-game days passed, several more missions, no problems.

Now I'm deploying some commsats, which is a multi-day mission, and... three or four days in, I wanted to return to the Space Center to make sure my scientist on the anomaly lab was doing okay (he has 16 days of healthy time left, and I wasn't sure how many days I had left).

Suddenly, I couldn't return to the Space Center, couldn't save the game, couldn't switch craft, couldn't pull up Kerbal Health... Aha! So I opened the console, and kept seeing the same error message, which I'd also seen before, "Object reference not set to an instance of an object." My guess is that the game is disabling some stuff, like saving and, as a result, scene changes, to avoid corrupting the save once an error is thrown.

So... I hard-close the game again (probably losing much or all of my multi-sat deployment mission, hooray), pull up the logs, and... this is what I get.

This sequence started during a time warp (i.e. when the base would possibly be moving around the most and/or causing some kind of problem?), throwing the NRE error once a (real-time) second during the warp. Then when the warp ended (was an auto-warp), it shifted to once every 10 seconds. Every time, the error sequence is the same, with some other stuff happening in between (looks like garbage collection stuff?)

The log is pasted below. The actual log goes on at quite some length, but I captured the start of it, the once-per-second period, and the first few iterations of the ten-second timing (which I assume is how often Kerbal Health runs checks on deployed kerbals when not in rails-warp?)

 

I realize this is a very strange, niche case... and it looks like it also has something to do with Connected Living Space, but I don't know enough about Kerbal Health's code to fully grasp what this sequence is trying to do... like, I don't know if "ProtoCrewMember" is a normal call, or if that's a generic placeholder and part of the problem.

 

Any idea what's happening here? If you want the entire log, let me know, but this is the relevant section, and it was a pretty long play session, so it's huge. This is from KSP.log. No other logs were written at the time of this incident. Module Manager only shows three warnings for the load for this session, all related to Decouple With Control whining that I'd uninstalled State Funding, but that was several saves ago and I doubt it's related.

 

Spoiler

[LOG 01:21:16.718] Warping to UT:508861.7. Max Rate Allowed: 5.0x.
[LOG 01:21:16.738] Packing KS ComSat 3 for orbit
[EXC 01:21:19.271] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 01:21:20.260] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 01:21:21.260] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 01:21:22.261] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[LOG 01:21:23.115] Warping down...  UT: 508365.4 DecelStart at 508361.2 Overshoot is 4.2s.
[LOG 01:21:23.115] Vessel No Longer In Range Upon Leaving TimewarpUR-07 Kerbin Radar and Multispectral (unloaded)
[EXC 01:21:23.194] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 01:21:23.760] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[LOG 01:21:23.932] [FlightIntegrator]: Vessel KS ComSat 3 has been unloaded 4.01990234374534, applying analytic temperature 260.714837381955
[LOG 01:21:23.948] [FlightIntegrator]: Vessel KS ComSat 3 has been unloaded 3.61991210939595, applying analytic temperature 260.71224079588
[LOG 01:21:23.965] [FlightIntegrator]: Vessel KS ComSat 3 has been unloaded 3.21992187498836, applying analytic temperature 260.71013304189
[LOG 01:21:23.982] [FlightIntegrator]: Vessel KS ComSat 3 has been unloaded 2.81993164063897, applying analytic temperature 260.705255713895
[LOG 01:21:24.015] [FlightIntegrator]: Vessel KS ComSat 3 has been unloaded 2.41994140623137, applying analytic temperature 260.703772464777
[EXC 01:21:24.060] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[LOG 01:21:24.112] Real-time resumed. Current UT is: 508861.9. TgtUT Error is 0.2046s. (Overshot)
[LOG 01:21:24.117] Unpacking KS ComSat 3
[EXC 01:21:31.676] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 01:21:41.694] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 01:21:51.693] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 01:22:01.727] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[EXC 01:22:11.727] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[LOG 01:22:21.285] [AlarmTypeManeuver]: Flight Plan changed, the maneuver no longer exists, dettaching the alarm from the maneuver
[EXC 01:22:21.728] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.CLS.GetCLSSpace (ProtoCrewMember pcm, Vessel vessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Core.GetCrew (ProtoCrewMember pcm, System.Boolean entireVessel) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.Logic.Test (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.MTBEModifier.Calculate (System.Collections.Generic.List`1[T] modifiers, System.Double baseValue, ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.HealthCondition.GetMTBE (ProtoCrewMember pcm) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario+<>c__DisplayClass66_2.<UpdateKerbals>b__1 (KerbalHealth.HealthCondition hc) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].MoveNext () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
    KerbalHealth.KerbalHealthScenario.UpdateKerbals (System.Boolean forced) (at <d6586013e67e4b84ae4c113486e35f56>:0)
    KerbalHealth.KerbalHealthScenario.FixedUpdate () (at <d6586013e67e4b84ae4c113486e35f56>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
[LOG 01:22:22.633] [PlanetariumCamera]: Focus: KS ComSat 3
[LOG 01:22:22.639] Maneuver Mode enabled

Edit: Went back into the game, drove the base farther from the experiments and the anomaly and onto much more level ground, and... same thing happened. Switched to the same comsat, warped to the same maneuver, did the maneuver, set up the next one, and got the error.

https://imgur.com/a/YZtZPL7

Edited by FirroSeranel
Link to comment
Share on other sites

Kerbal Health 1.6.2

  • Various under-the-hood optimizations (caching of some frequently used values, switching from double to float fields, using more efficient loops etc.)
  • Added: Showing conditions the kerbal had before they died of poor health
  • Fixed: Incorrect calculation of training levels in Editor
  • Fixed: Missing localization of Training Complete message
  • Fixed: NRE when CLS is missing

Download here

Link to comment
Share on other sites

  • 1 month later...

Another great mod that for some reason I didn't know about. Thanks for all the hard work on this, looks like I can really make Kerbals life trickier in spaaaace.

I'll be using this with Space Age, TAC-LS, CLS, Skyhawk Science, KCT, KSRSS, History of Spaceflight, and a bunch of other mods for a stock slightly harder/realistic (but not too much). The idea there is to prefer probes before crew, but sending Kerbals to their doom experience and get more science is an end goal.

Link to comment
Share on other sites

  • 4 weeks later...

Christmas update! :cool:

Kerbal Health 1.6.3

  • Changed: In-flight training now works differently: kerbals now always gradually increase their training level for the vessels they are in, without a hard cap but with diminishing returns, so that they never actually reach 100%. The speed of training depends on the kerbal's stupidity (the higher, the slower), current situation (more challenging locations yield more training, and being on the ground on Kerbin stops training) and the current training level. See more details in readme.
  • Changed: KSC training caps have been reduced. Based on the Astronaut Level facility, they've been reduced to 30%, 50% and 60% for levels 1 to 3 (from 40%, 60% and 75%, respectively).
  • Changed: EVA now also requires training, which currently can only be done in flight.
  • Changed: EVA health factor reduced from 10 to 8 HP/day to compensate for the above change.
  • Changed: Default Stupidity factor for training speed is now 50%
  • Improved: Training Info UI
  • Fixed: Events would almost never happen. Also event checks are conducted much more often now, which is especially important for probable events.

Download here

Edited by garwel
Link to comment
Share on other sites

  • 4 weeks later...

This release marks 6 years since Kerbal Health, my first game mod ever, was published. It's been quite a ride! I want to thank everyone who enjoyed this mod, criticized it (in a civil manner), provided ideas and other feedback and especially helped with pull requests. With KSP2 around the corner, I don't know if I'm going to do any more significant releases of Kerbal Health, but I do plan to issue fixes and rebuilds when necessary.

Kerbal Health 1.6.4

  • Changed: Made the training system more consistent on vessels that utilize multiple parts of multiple types. It is now assumed that kerbals use parts (and therefore experience stress) in the proportion of the number of parts of a type on the vessel. So if you have 3 labs and 1 Hitchhiker, stress from labs will weigh 3x more than from the Hitchhiker.
  • Unfortunately, this change required some tweaks to the save files. So it is recommended that you visit every crewed vessel after loading the game to update the relevant values. Downgrading to Kerbal Health 1.6.3 and lower is also not guaranteed.

Download here

Edited by garwel
Link to comment
Share on other sites

  • 4 weeks later...

This release fixes some stress- and training-related issues introduced in Kerbal Health 1.6.4. 

Kerbal Health 1.6.5

  • Fixed: Training was sometimes taking place for wrong parts.
  • Fixed: Some parts info in existing saves wasn't correctly updated, which caused incorrect stress- and training-related behaviour.

Download here

Link to comment
Share on other sites

  • 3 weeks later...

Hey Pal, thanks for all the work.

I seem to be getting this error on repeat when using Health integrated with Connected Living Spaces:

 

NullReferenceException: Object reference not set to an instance of an object
  at KerbalHealth.KerbalHealthEditorReport.get_CLSSpacesCount () [0x00013] in <01bb8e04623f43048f84145489c3e8ec>:0 
  at KerbalHealth.KerbalHealthEditorReport.<ShowWindow>b__32_4 () [0x00000] in <01bb8e04623f43048f84145489c3e8ec>:0 
  at DialogGUIBase.Update () [0x000b1] in <4b449f2841f84227adfaad3149c8fdba>:0 
  at DialogGUIButton.Update () [0x00000] in <4b449f2841f84227adfaad3149c8fdba>:0 
  at DialogGUIBase.Update () [0x00045] in <4b449f2841f84227adfaad3149c8fdba>:0 
  at MultiOptionDialog.Update () [0x00016] in <4b449f2841f84227adfaad3149c8fdba>:0 
  at PopupDialog.Update () [0x0001b] in <4b449f2841f84227adfaad3149c8fdba>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)

 

Produced by opening up the vab, placing command pod, than clicking on the health tab. Is this anything to be concerned about?

Realised by disabling the integration the mod now functions correctly. IS this a you problem or a there problem?

Thank you.

Cheers

Edited by WhitestWizard
Link to comment
Share on other sites

On 3/7/2023 at 1:06 PM, WhitestWizard said:

Hey Pal, thanks for all the work.

I seem to be getting this error on repeat when using Health integrated with Connected Living Spaces:

 

NullReferenceException: Object reference not set to an instance of an object
  at KerbalHealth.KerbalHealthEditorReport.get_CLSSpacesCount () [0x00013] in <01bb8e04623f43048f84145489c3e8ec>:0 
  at KerbalHealth.KerbalHealthEditorReport.<ShowWindow>b__32_4 () [0x00000] in <01bb8e04623f43048f84145489c3e8ec>:0 
  at DialogGUIBase.Update () [0x000b1] in <4b449f2841f84227adfaad3149c8fdba>:0 
  at DialogGUIButton.Update () [0x00000] in <4b449f2841f84227adfaad3149c8fdba>:0 
  at DialogGUIBase.Update () [0x00045] in <4b449f2841f84227adfaad3149c8fdba>:0 
  at MultiOptionDialog.Update () [0x00016] in <4b449f2841f84227adfaad3149c8fdba>:0 
  at PopupDialog.Update () [0x0001b] in <4b449f2841f84227adfaad3149c8fdba>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)

 

Produced by opening up the vab, placing command pod, than clicking on the health tab. Is this anything to be concerned about?

Realised by disabling the integration the mod now functions correctly. IS this a you problem or a there problem?

Thank you.

Cheers

There were some issues with the integration, and I tinkered with it recently, so I probably broke something there (or maybe CLS got updated). Will check it.

Link to comment
Share on other sites

  • 3 weeks later...

I have made a Radiation Config for FFT, updating the old one that only had 3 engines.

Spoiler

KHFFT

//Changes by Overlocker
// Calculated from Kerbalism FFT and added conversion number of 1e-12 from Kerbalism to Kerbal Health for Engines and 10e-7 for Reactors (Its not perfect but an aproximation)
// Conversion number 1e-7 for Reactors because 1 Banana is 1e-7 Sievert and converting Rad/s from Kerbalism gives about the same.
// Conversion numbre 1e-12 for Engines because using above method proves very low radiation given, so comparing Kerbal Atomics configs from Kerbal Health and Kerbalism, is a round number.

@PART[*]:HAS[@MODULE[FusionReactor]]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		radioactivity = 3000
	}
}

@PART[fft-antimatter-beam-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 6000000000
	}
}

@PART[fft-antimatter-microfission-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 12000000
	}
}

@PART[fft-antimatter-microfusion-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 12000000
	}
}

@PART[fft-ffre-plasma-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 4000000
	}
}

@PART[fft-ffre-solid-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 2000000
	}
}

@PART[fft-fission-zpinch-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 120000000
	}
}

@PART[fft-nswr-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 800000000
	}
}

@PART[fft-fusion-axial-zpinch-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 2000000000
	}
}

@PART[fft-fusion-inertial-laser-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 4000000
	}
}

@PART[fft-fusion-inertial-magnetic-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 10000000
	}
}

@PART[fft-fusion-magnetic-mirror-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 400000000
	}
}

@PART[fft-fusion-magnetic-tokamak-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 2000000
	}
}

@PART[fft-fusion-magnetic-tokamak-aerospike-1]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 2000000
	}
}

// 5m NSWR Rocket didn't have a config in Kerbalism FFT. The big one has about 2.12 times the thrust of the small one, so Radiation is 2.12 times more.

@PART[fft-nswr-2]:NEEDS[FarFutureTechnologies]
{
	MODULE
	{
		name = ModuleKerbalHealth
		engineRadioactivity = 1688888888
	}
}

 

 

Edited by Overlocker96
Wrong conversion numbre in 5m NSWR
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...