There will be instances in stock and especially with ContractConfigurator where the display title is needed instead of the internal name.
Preferably, the title field should contain a localization string, but this will have to do for now.
The specific error will repeatedly come up for every contract randomly generated without an agent title
[ERR 17:34:26.390] Input is null for field 'agent' in config node 'CONTRACT'
at System.Environment.get_StackTrace()
at ConfigNode.AddValue(System.String name, System.String value)
at Contracts.Contract.Save(.ConfigNode node)
at ContractConfigurator.ContractPreLoader.OnSave(.ConfigNode node)
at ScenarioModule.Save(.ConfigNode node)
at ProtoScenarioModule..ctor(.ScenarioModule module)
at ScenarioRunner.UpdateModules()
at ScenarioRunner.GetUpdatedProtoModules()
at Game.Updated(GameScenes startSceneOverride)
at GamePersistence.SaveGame(System.String saveFileName, System.String saveFolder, SaveMode saveMode, GameScenes startScene)
at GamePersistence.SaveGame(System.String saveFileName, System.String saveFolder, SaveMode saveMode)
at KSP.UI.Screens.SpaceTracking.OnVesselDeleteConfirm()
at DialogGUIButton.OptionSelected()
at DialogGUIButton.m__7()
at UnityEngine.Events.InvokableCall.Invoke()
at UnityEngine.Events.UnityEvent.Invoke()
at UnityEngine.UI.Button.Press()
at UnityEngine.UI.Button.OnPointerClick(UnityEngine.EventSystems.PointerEventData eventData)
at UnityEngine.EventSystems.ExecuteEvents.Execute(IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData)
at UnityEngine.EventSystems.ExecuteEvents.Execute(UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor)
at UnityEngine.EventSystems.StandaloneInputModule.ProcessMousePress(UnityEngine.EventSystems.MouseButtonEventData data)
at UnityEngine.EventSystems.StandaloneInputModule.ProcessMouseEvent(Int32 id)
at UnityEngine.EventSystems.StandaloneInputModule.ProcessMouseEvent()
at UnityEngine.EventSystems.StandaloneInputModule.Process()
at UnityEngine.EventSystems.EventSystem.Update()
There will be instances in stock and especially with ContractConfigurator where the display title is needed instead of the internal name.
Preferably, the title field should contain a localization string, but this will have to do for now.
The specific error will repeatedly come up for every contract randomly generated without an agent title [ERR 17:34:26.390] Input is null for field 'agent' in config node 'CONTRACT' at System.Environment.get_StackTrace() at ConfigNode.AddValue(System.String name, System.String value) at Contracts.Contract.Save(.ConfigNode node) at ContractConfigurator.ContractPreLoader.OnSave(.ConfigNode node) at ScenarioModule.Save(.ConfigNode node) at ProtoScenarioModule..ctor(.ScenarioModule module) at ScenarioRunner.UpdateModules() at ScenarioRunner.GetUpdatedProtoModules() at Game.Updated(GameScenes startSceneOverride) at GamePersistence.SaveGame(System.String saveFileName, System.String saveFolder, SaveMode saveMode, GameScenes startScene) at GamePersistence.SaveGame(System.String saveFileName, System.String saveFolder, SaveMode saveMode) at KSP.UI.Screens.SpaceTracking.OnVesselDeleteConfirm() at DialogGUIButton.OptionSelected() at DialogGUIButton.m__7()
at UnityEngine.Events.InvokableCall.Invoke()
at UnityEngine.Events.UnityEvent.Invoke()
at UnityEngine.UI.Button.Press()
at UnityEngine.UI.Button.OnPointerClick(UnityEngine.EventSystems.PointerEventData eventData)
at UnityEngine.EventSystems.ExecuteEvents.Execute(IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData)
at UnityEngine.EventSystems.ExecuteEvents.Execute(UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor)
at UnityEngine.EventSystems.StandaloneInputModule.ProcessMousePress(UnityEngine.EventSystems.MouseButtonEventData data)
at UnityEngine.EventSystems.StandaloneInputModule.ProcessMouseEvent(Int32 id)
at UnityEngine.EventSystems.StandaloneInputModule.ProcessMouseEvent()
at UnityEngine.EventSystems.StandaloneInputModule.Process()
at UnityEngine.EventSystems.EventSystem.Update()
The save will have something like this: