Jump to content

[1.10.1+] Contract Configurator [v1.30.5] [2020-10-05]


nightingale

Recommended Posts

5 hours ago, nightingale said:

 

  • Increased max active contract multiplier slider maximum from 2.0 to 8.0

Excuse my ignorance, where is this slider located?

If there is more sliders it maybe a maximum available contracts. It would nullify my need some module manager patches. This probably why I have to many mods as I do not know what all mods can do. 

 

Edited by Sunesha
Link to comment
Share on other sites

2 hours ago, Sunesha said:

Excuse my ignorance, where is this slider located?

If there is more sliders it maybe a maximum available contracts. It would nullify my need some module manager patches. This probably why I have to many mods as I do not know what all mods can do. 

 

It's in the difficulty settings. Look on the left under "Basic" and "Advanced" when you open the difficulty settings.

Link to comment
Share on other sites

14 hours ago, nightingale said:

Release time, too many people bugging me about RemoteTech. :D Download here!

Contract Configurator 1.25.0

  • Added ExperienceTrait to parser.
  • Kerbal.ExperienceTrait now returns an ExperienceTrait instead of a localised string.
  • Increased max active contract multiplier slider maximum from 2.0 to 8.0.
  • Support for RemoteTech 1.8.10.3 (thanks wraithan).

I got some errors after updating

I run  the following contract packs, and have so far had only few issues

  • AnomalySurveyor
  • FieldResearch
  • KerbalAcademy
  • KerbinSpaceStation

I do believe these error are related to at least Kerbal Academy. I this an error in CC or has some functionality been deprecated?

LOG

Snip

Spoiler

[ERR 19:50:51.316] ContractConfigurator.ContractType: CONTRACT_TYPE 'KerbalAcademyBootCamp': Error parsing engineers

[EXC 19:50:51.317] NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseIdentifier (ContractConfigurator.ExpressionParser.Token token)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseVarOrIdentifier (ContractConfigurator.ExpressionParser.Token token)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseSimpleStatement[String] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[Experience.ExperienceTrait].ParseOperation[Boolean] (Experience.ExperienceTrait lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseMethod[Kerbal] (ContractConfigurator.ExpressionParser.Token token, ContractConfigurator.Kerbal obj, Boolean isFunction)
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseMethod[Kerbal] (ContractConfigurator.ExpressionParser.Token token, ContractConfigurator.Kerbal obj, Boolean isFunction)
    Rethrow as Exception: Error parsing statement.
    Error occurred near '*':
    AllKerbals().Where(k => k.ExperienceTrait() == "Engineer" && k.RosterStatus() == Available && k.Type() == Crew)
    ................................................................................* <-- HERE
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
    ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Kerbal] (System.String key, System.String stringValue, Boolean allowExpression)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ConfigNodeUtil.ParseValue[List`1] (.ConfigNode configNode, System.String key, Boolean allowExpression)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, List`1, Func`2)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    ContractConfigurator.ExpressionParser.DataNode:ParseDataNodes(ConfigNode, IContractConfiguratorFactory, Dictionary`2, Dictionary`2)
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[WRN 19:50:51.375] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'KerbalAcademyBootCamp'
[LOG 19:50:51.383] [INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'KerbalAcademyEngineering101'
[ERR 19:50:51.399] ContractConfigurator.ContractType: CONTRACT_TYPE 'KerbalAcademyEngineering101': Error parsing mentor

[EXC 19:50:51.401] DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ProtoCrewMember+KerbalType].ApplyOperator[KerbalType] (KerbalType lval, System.String op, KerbalType rval)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ProtoCrewMember+KerbalType].ParseOperation[KerbalType] (KerbalType lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].ParseOperation[Double] (Double lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseOperation[String] (System.String lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[Experience.ExperienceTrait].ParseOperation[ExperienceTrait] (Experience.ExperienceTrait lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as Exception: Error parsing statement.
    Error occurred near '*':
    AllKerbals().Where(m => m.ExperienceTrait() == "Engineer" && m.ExperienceLevel()>=2 && m.Type() == Crew && m.RosterStatus() == Available).Random()
    ........................................................................................................* <-- HERE
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
    ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Kerbal] (System.String key, System.String stringValue, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, ContractConfigurator.Kerbal defaultValue, System.Func`2 validation)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Kerbal, Func`2)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    ContractConfigurator.ExpressionParser.DataNode:ParseDataNodes(ConfigNode, IContractConfiguratorFactory, Dictionary`2, Dictionary`2)
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[ERR 19:50:51.425] ContractConfigurator.ContractType: CONTRACT_TYPE 'KerbalAcademyEngineering101': Error parsing trainee

[EXC 19:50:51.427] DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ApplyOperator[String] (System.String lval, System.String op, System.String rval)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseOperation[String] (System.String lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[Experience.ExperienceTrait].ParseOperation[ExperienceTrait] (Experience.ExperienceTrait lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as Exception: Error parsing statement.
    Error occurred near '*':
    AllKerbals().Where(m => m.ExperienceTrait() == "Engineer" && m.ExperienceLevel()<= @/minExperience && m.Type() == Crew && m.RosterStatus() == Available).Random()
    ...................................................................................................* <-- HERE
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
    ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Kerbal] (System.String key, System.String stringValue, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, ContractConfigurator.Kerbal defaultValue, System.Func`2 validation)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Kerbal, Func`2)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
    ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    ContractConfigurator.ConfigNodeUtil:ExecuteDeferredLoads()
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[WRN 19:50:51.432] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'KerbalAcademyEngineering101'
[LOG 19:50:51.440] [INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'KerbalAcademyEngineeringSchool'
[ERR 19:50:51.441] ContractConfigurator.ContractType: CONTRACT_TYPE 'KerbalAcademyEngineeringSchool': Error parsing trainee

[EXC 19:50:51.443] NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseIdentifier (ContractConfigurator.ExpressionParser.Token token)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseVarOrIdentifier (ContractConfigurator.ExpressionParser.Token token)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseSimpleStatement[String] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[Experience.ExperienceTrait].ParseOperation[Boolean] (Experience.ExperienceTrait lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseMethod[Kerbal] (ContractConfigurator.ExpressionParser.Token token, ContractConfigurator.Kerbal obj, Boolean isFunction)
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseMethod[Kerbal] (ContractConfigurator.ExpressionParser.Token token, ContractConfigurator.Kerbal obj, Boolean isFunction)
    Rethrow as Exception: Error parsing statement.
    Error occurred near '*':
    AllKerbals().Where(m => m.ExperienceTrait() == "Engineer" && m.Type() == Crew && m.RosterStatus() == Available && m.ExperienceLevel()>0 && m.ExperienceLevel()<5).Random()
    ........................................................................* <-- HERE
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
    ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Kerbal] (System.String key, System.String stringValue, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, ContractConfigurator.Kerbal defaultValue, System.Func`2 validation)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Kerbal, Func`2)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    ContractConfigurator.ExpressionParser.DataNode:ParseDataNodes(ConfigNode, IContractConfiguratorFactory, Dictionary`2, Dictionary`2)
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[ERR 19:50:51.445] ContractConfigurator.ContractType: CONTRACT_TYPE 'KerbalAcademyEngineeringSchool': Error parsing mentorList

[EXC 19:50:51.446] NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseIdentifier (ContractConfigurator.ExpressionParser.Token token)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseVarOrIdentifier (ContractConfigurator.ExpressionParser.Token token)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseSimpleStatement[String] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[Experience.ExperienceTrait].ParseOperation[Boolean] (Experience.ExperienceTrait lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token)
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token)
    Rethrow as Exception: Error parsing statement.
    Error occurred near '*':
    @aliveKerbals.Where(m => m.ExperienceTrait() == "Engineer" && m.Type() == Crew && m.ExperienceLevel() > @/mentorLevel)
    .........................................................................* <-- HERE
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
    ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Kerbal] (System.String key, System.String stringValue, Boolean allowExpression)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ConfigNodeUtil.ParseValue[List`1] (.ConfigNode configNode, System.String key, Boolean allowExpression)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, List`1, Func`2)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    ContractConfigurator.ExpressionParser.DataNode:ParseDataNodes(ConfigNode, IContractConfiguratorFactory, Dictionary`2, Dictionary`2)
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[WRN 19:50:51.477] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'KerbalAcademyEngineeringSchool'
[LOG 19:50:51.484] [INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'KerbalAcademyFieldScience'
[ERR 19:50:51.486] ContractConfigurator.ContractType: CONTRACT_TYPE 'KerbalAcademyFieldScience': Error parsing trainee

[EXC 19:50:51.487] NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseIdentifier (ContractConfigurator.ExpressionParser.Token token)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseVarOrIdentifier (ContractConfigurator.ExpressionParser.Token token)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseSimpleStatement[String] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[Experience.ExperienceTrait].ParseOperation[Boolean] (Experience.ExperienceTrait lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseMethod[Kerbal] (ContractConfigurator.ExpressionParser.Token token, ContractConfigurator.Kerbal obj, Boolean isFunction)
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseMethod[Kerbal] (ContractConfigurator.ExpressionParser.Token token, ContractConfigurator.Kerbal obj, Boolean isFunction)
    Rethrow as Exception: Error parsing statement.
    Error occurred near '*':
    AllKerbals().Where(m => m.ExperienceTrait() == "Scientist" && m.Type() == Crew && m.RosterStatus() == Available && m.ExperienceLevel()>0 && m.ExperienceLevel()<5).Random()
    .........................................................................* <-- HERE
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
    ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Kerbal] (System.String key, System.String stringValue, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, ContractConfigurator.Kerbal defaultValue, System.Func`2 validation)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Kerbal, Func`2)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    ContractConfigurator.ExpressionParser.DataNode:ParseDataNodes(ConfigNode, IContractConfiguratorFactory, Dictionary`2, Dictionary`2)
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[ERR 19:50:51.489] ContractConfigurator.ContractType: CONTRACT_TYPE 'KerbalAcademyFieldScience': Error parsing mentorList

[EXC 19:50:51.490] NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseIdentifier (ContractConfigurator.ExpressionParser.Token token)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseVarOrIdentifier (ContractConfigurator.ExpressionParser.Token token)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseSimpleStatement[String] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[Experience.ExperienceTrait].ParseOperation[Boolean] (Experience.ExperienceTrait lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token)
    Rethrow as NotSupportedException: Can't parse identifier for type System.String in class ContractConfigurator.ExpressionParser.StringExpressionParser - not supported!
    ContractConfigurator.ExceptionUtil.UnwrapTargetInvokationException (System.Reflection.TargetInvocationException tie)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token)
    Rethrow as Exception: Error parsing statement.
    Error occurred near '*':
    @aliveKerbals.Where(m => m.ExperienceTrait() == "Scientist" && m.Type() == Crew && m.ExperienceLevel() > @/mentorLevel)
    ..........................................................................* <-- HERE
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
    ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Kerbal] (System.String key, System.String stringValue, Boolean allowExpression)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ConfigNodeUtil.ParseValue[List`1] (.ConfigNode configNode, System.String key, Boolean allowExpression)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, List`1, Func`2)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    ContractConfigurator.ExpressionParser.DataNode:ParseDataNodes(ConfigNode, IContractConfiguratorFactory, Dictionary`2, Dictionary`2)
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[WRN 19:50:51.508] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'KerbalAcademyFieldScience'
[LOG 19:50:51.515] [INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'KerbalAcademyFlightSchool'
[ERR 19:50:51.521] ContractConfigurator.ContractType: CONTRACT_TYPE 'KerbalAcademyFlightSchool': Error parsing mentor

[EXC 19:50:51.523] DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ProtoCrewMember+KerbalType].ApplyOperator[KerbalType] (KerbalType lval, System.String op, KerbalType rval)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ProtoCrewMember+KerbalType].ParseOperation[KerbalType] (KerbalType lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].ParseOperation[Double] (Double lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseOperation[String] (System.String lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[Experience.ExperienceTrait].ParseOperation[ExperienceTrait] (Experience.ExperienceTrait lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as Exception: Error parsing statement.
    Error occurred near '*':
    AllKerbals().Where(m => m.ExperienceTrait() == "Pilot" && m.ExperienceLevel()>=2 && m.Type() == Crew && m.RosterStatus() == Available).Random()
    .....................................................................................................* <-- HERE
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
    ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Kerbal] (System.String key, System.String stringValue, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, ContractConfigurator.Kerbal defaultValue, System.Func`2 validation)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Kerbal, Func`2)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    ContractConfigurator.ExpressionParser.DataNode:ParseDataNodes(ConfigNode, IContractConfiguratorFactory, Dictionary`2, Dictionary`2)
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[ERR 19:50:51.532] ContractConfigurator.ContractType: CONTRACT_TYPE 'KerbalAcademyFlightSchool': Error parsing trainee

[EXC 19:50:51.534] DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ApplyOperator[String] (System.String lval, System.String op, System.String rval)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseOperation[String] (System.String lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[Experience.ExperienceTrait].ParseOperation[ExperienceTrait] (Experience.ExperienceTrait lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as Exception: Error parsing statement.
    Error occurred near '*':
    AllKerbals().Where(m => m.ExperienceTrait() == "Pilot" && m.ExperienceLevel()<= @/minExperience && m.Type() == Crew && m.RosterStatus() == Available).Random()
    ................................................................................................* <-- HERE
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
    ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Kerbal] (System.String key, System.String stringValue, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, ContractConfigurator.Kerbal defaultValue, System.Func`2 validation)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Kerbal, Func`2)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
    ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    ContractConfigurator.ConfigNodeUtil:ExecuteDeferredLoads()
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[WRN 19:50:51.536] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'KerbalAcademyFlightSchool'
[LOG 19:50:51.544] [INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'KerbalAcademyScientificPrinciples'
[ERR 19:50:51.550] ContractConfigurator.ContractType: CONTRACT_TYPE 'KerbalAcademyScientificPrinciples': Error parsing mentor

[EXC 19:50:51.552] DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ProtoCrewMember+KerbalType].ApplyOperator[KerbalType] (KerbalType lval, System.String op, KerbalType rval)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ProtoCrewMember+KerbalType].ParseOperation[KerbalType] (KerbalType lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].ParseOperation[Double] (Double lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseOperation[String] (System.String lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[Experience.ExperienceTrait].ParseOperation[ExperienceTrait] (Experience.ExperienceTrait lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to ProtoCrewMember+KerbalType.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as Exception: Error parsing statement.
    Error occurred near '*':
    AllKerbals().Where(m => m.ExperienceTrait() == "Scientist" && m.ExperienceLevel()>=2 && m.Type() == Crew && m.RosterStatus() == Available).Random()
    .........................................................................................................* <-- HERE
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
    ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Kerbal] (System.String key, System.String stringValue, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, ContractConfigurator.Kerbal defaultValue, System.Func`2 validation)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Kerbal, Func`2)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    ContractConfigurator.ExpressionParser.DataNode:ParseDataNodes(ConfigNode, IContractConfiguratorFactory, Dictionary`2, Dictionary`2)
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[ERR 19:50:51.564] ContractConfigurator.ContractType: CONTRACT_TYPE 'KerbalAcademyScientificPrinciples': Error parsing trainee

[EXC 19:50:51.565] DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ApplyOperator[String] (System.String lval, System.String op, System.String rval)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseOperation[String] (System.String lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetRval ()
    ContractConfigurator.ExpressionParser.ExpressionParser`1[Experience.ExperienceTrait].ParseOperation[ExperienceTrait] (Experience.ExperienceTrait lval, System.String op)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Boolean] ()
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, Boolean obj, Boolean isFunction)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as DataStoreCastException: Cannot cast from System.Boolean to System.String.
    ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] ()
    Rethrow as Exception: Error parsing statement.
    Error occurred near '*':
    AllKerbals().Where(m => m.ExperienceTrait() == "Scientist" && m.ExperienceLevel()<= @/minExperience && m.Type() == Crew && m.RosterStatus() == Available).Random()
    ....................................................................................................* <-- HERE
    ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)
    ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Kerbal] (System.String key, System.String stringValue, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, Boolean allowExpression)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Kerbal] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, ContractConfigurator.Kerbal defaultValue, System.Func`2 validation)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Kerbal, Func`2)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
    ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    ContractConfigurator.ConfigNodeUtil:ExecuteDeferredLoads()
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

 

Link to comment
Share on other sites

@nightingale @N70 I also got CC errors now, as soon as the Kerbalism node is reached:

[ERR 20:40:09.392] [ModuleManager] Exception while processing node : Kerbalism/Support/ContractConfigurator/@CONTRACT_TYPE[*]

[EXC 20:40:09.394] NullReferenceException: Object reference not set to an instance of an object
	ConfigNode.CopyToRecursive (.ConfigNode node, Boolean overwrite)
	ConfigNode.CopyToRecursive (.ConfigNode node, Boolean overwrite)
	ConfigNode.CopyTo (.ConfigNode node, System.String newName)
	ModuleManager.MMPatchLoader.ModifyNode (ModuleManager.Collections.ImmutableStack`1 original, .ConfigNode mod, PatchContext context)
	ModuleManager.PatchApplier.ApplyPatches (System.String stage, IEnumerable`1 patches)
	UnityEngine.Logger:LogException(Exception)
	ModuleManager.Logging.ModLogger:Exception(String, Exception)
	ModuleManager.Logging.ExceptionMessage:LogTo(IBasicLogger)
	ModuleManager.<ProcessPatch>d__33:MoveNext()
	UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[ERR 20:40:09.395] [ModuleManager] Processed node was
Kerbalism/Support/ContractConfigurator/@CONTRACT_TYPE[*]
  @CONTRACT_TYPE[*]
  {
    @PARAMETER[*]:HAS[#partModule[ModuleScienceLab]]
    {
      @partModule = Laboratory
    }
    @PARAMETER[*]
    {
      @PARAMETER[*]:HAS[#partModule[ModuleScienceLab]]
      {
        @partModule = Laboratory
      }
      @PARAMETER[*]
      {
        @PARAMETER[*]:HAS[#partModule[ModuleScienceLab]]
        {
          @partModule = Laboratory
        }
        @PARAMETER[*]
        {
          @PARAMETER[*]:HAS[#partModule[ModuleScienceLab]]
          {
            @partModule = Laboratory
          }
        }
      }
    }
    @REQUIREMENT[*]:HAS[#partModule[ModuleScienceLab]]
    {
      @partModule = Laboratory
    }
    @REQUIREMENT[*]
    {
      @REQUIREMENT[*]:HAS[#partModule[ModuleScienceLab]]
      {
        @partModule = Laboratory
      }
      @REQUIREMENT[*]
      {
        @REQUIREMENT[*]:HAS[#partModule[ModuleScienceLab]]
        {
          @partModule = Laboratory
        }
        @REQUIREMENT[*]
        {
          @REQUIREMENT[*]:HAS[#partModule[ModuleScienceLab]]
          {
            @partModule = Laboratory
          }
        }
      }
    }
  }

Log:
https://www.dropbox.com/s/jkjtghkbdn8fgyg/2018-04-16_1 KSP.log.7z?dl=1

Edit:

I don't get it - I have this issue with CC 1.25.0 and also with 1.24.4 - that doesn't make sense.

Yesterday I used 1.24.4 with the same Kerbalism build and did not have this issue...

Edited by Gordon Dry
Link to comment
Share on other sites

@Warezcrawler - That looks to be a bug with one of the changes in 1.25.0 that isn't quite as backwards compatible as I expected.  I'll see if there's a change i can do to make that one work properly.  Raised #661 and will see if I can get a patch out tonight.

@Gordon Dry - That exception's being thrown by a stock method that is called by Module Manager.  The patch looks to be a Kerbalism MM patch to allow Contract Configurator contracts to work on Kerbalism due to some modules being renamed.  So I'd start with Module Manager on this one (calling @sarbian).

Link to comment
Share on other sites

1 hour ago, nightingale said:

 

@Gordon Dry - That exception's being thrown by a stock method that is called by Module Manager.  The patch looks to be a Kerbalism MM patch to allow Contract Configurator contracts to work on Kerbalism due to some modules being renamed.  So I'd start with Module Manager on this one (calling @sarbian).

I dont get how the node content could be null...

The file seems ok at first look. I ll try to remember to have a look tomorrow.

Link to comment
Share on other sites

@Warezcrawler - So good new/bad news.  Good news: I found a bug in the parsing of the ExperienceTrait.   Bad News: that doesn't fix the contract.  Bad News: I can't/won't fix what is essentially a bug in the parser around strings because it's a huge mess and would require rewriting a large part of the parser.  Good News: The fix to the contract pack is really, really easy - just remove the quotes around "Pilot", "Engineer" and "Scientist".

So @Mark Kerbin - not sure if you're still looking at taking over the the Kerbin Academy Contract Pack from @severedsolo, but now would be a great time since I just broke it.

Link to comment
Share on other sites

10 hours ago, maja said:

It's probably a good idea to resolve those errors

Well, after my daily dose of about 3 - 5 hours of bug-finding and reporting and game-rebooting-for-at-least-a-dozen-of-times I want  to be a player - sometimes I really want to.

Link to comment
Share on other sites

13 minutes ago, Gordon Dry said:

Well, after my daily dose of about 3 - 5 hours of bug-finding and reporting and game-rebooting-for-at-least-a-dozen-of-times I want  to be a player - sometimes I really want to.

I've often wondered. Do you even play the game? Or do you just spend all your time installing as many mods as possible and looking for bugs/conflict?

Link to comment
Share on other sites

@leatherneck6017 it seems there is some "convention" here; old school coders and back-in-the-days KSP'ers *think* having many mods that fit together is "havin too much mods", well:

  1. I found a rule, already 2 years ago, as long as I only got 16 GB RAM I make sure that my complete GameData folder (incl. Squad) is not bigger than 3.5 GB, better is max 3.2 GB
    (only for short sessions to do tests this can be more)
  2. When a mod (or part pack) alone is without any sense, but together with companion mods (part packs) is exactly what it's meant to be, than they belong together. Point.

Some modders have a different style than others. Of course.

In the extreme cases this means, some modders have an OP in the mod's thread that explains everything, they also got backports for KSP 1.3.1 etc.
In the other extreme cases this means, everything is chaotic. Mod downloads are packed wrong, have outdated dependencies in, have .zips inside with the same files again etc.

I just need some time to find out how a specific mod dev "ticks".

Some mod devs misunderstand me from the beginning, using this expectation that everybody else could be a total noob so I treat everybody like that - I just give not an answer to his question but reply with text modules ...

What is wrong in finding issues?
Other players doesn't seem to see them, I see a 12-line-block of exception poop coming out every second (or frame?) and my SSD wants to wear out in having these log files bloat to hundreds of gigs each session?

Why should I?

:confused:

Edited by Gordon Dry
Link to comment
Share on other sites

13 hours ago, nightingale said:

@Warezcrawler - So good new/bad news.  Good news: I found a bug in the parsing of the ExperienceTrait.   Bad News: that doesn't fix the contract.  Bad News: I can't/won't fix what is essentially a bug in the parser around strings because it's a huge mess and would require rewriting a large part of the parser.  Good News: The fix to the contract pack is really, really easy - just remove the quotes around "Pilot", "Engineer" and "Scientist".

So @Mark Kerbin - not sure if you're still looking at taking over the the Kerbin Academy Contract Pack from @severedsolo, but now would be a great time since I just broke it.

That sounds great to me. I’m more than willing to do that change in the contract myself :D

thanks!

Link to comment
Share on other sites

15 hours ago, nightingale said:

So @Mark Kerbin - not sure if you're still looking at taking over the the Kerbin Academy Contract Pack from @severedsolo, but now would be a great time since I just broke it.

I've been attacked by the life kraken, but once i get that under control I will probably pick it up. How exactly did you break it? 

Link to comment
Share on other sites

17 hours ago, nightingale said:

@Warezcrawler - So good new/bad news.  Good news: I found a bug in the parsing of the ExperienceTrait.   Bad News: that doesn't fix the contract.  Bad News: I can't/won't fix what is essentially a bug in the parser around strings because it's a huge mess and would require rewriting a large part of the parser.  Good News: The fix to the contract pack is really, really easy - just remove the quotes around "Pilot", "Engineer" and "Scientist".

So @Mark Kerbin - not sure if you're still looking at taking over the the Kerbin Academy Contract Pack from @severedsolo, but now would be a great time since I just broke it.

I do believe that fixed the problem.... The Exceptions are at least gone, so further playing will show if it still works, but I would expect so.

However, I have another issue

I do think the following comes from "KerbinSpaceStation" contract pack

Spoiler

[EXC 22:58:36.728] ArgumentException: Must be greater than or equal to 1
    ContractConfigurator.Validation.GE[Int32] (Int32 val, Int32 referenceValue)
    ContractConfigurator.HasCrewFactory.<Load>b__7_8 (Int32 x)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Int32] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Int32 defaultValue, System.Func`2 validation)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Int32, Func`2)
    ContractConfigurator.HasCrewFactory:Load(ConfigNode)
    ContractConfigurator.ParameterFactory:GenerateParameterFactory(ConfigNode, ContractType, ParameterFactory&, ParameterFactory)
    ContractConfigurator.ParameterFactory:GenerateParameterFactory(ConfigNode, ContractType, ParameterFactory&, ParameterFactory)
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

Where the contract which has issues would be

Spoiler

CONTRACT_TYPE
{
    name = BasePopulation
    title = Crew a Base or Station
    genericTitle = Crew a Base or Station
    group = BasesandStations
    description = Our engineers are happy to to have completed @/targetVessel1, but they think that some Kerbals on board would be good.
    genericDescription = Our engineers are happy to to have finished work, but they think that some Kerbals on board would be good.
    synopsis = We want you to bring some Kerbals to @/targetVessel1.
    completedMessage = You have successfully crewed @/targetVessel1.
    minExpiry = 0.0
    maxExpiry = 7.0
    cancellable = true
    declinable = true 
    autoAccept = false
    prestige = Significant   
    targetBody = @/targetBody1
    maxSimultaneous = 1   
    rewardScience = 0.0
    rewardReputation = 10.0
    rewardFunds = Random(40000, 70000)
    failureReputation = 10.00
    failureFunds = 100000.0
    advanceFunds = 1000.0 
    
    DATA
    {
        type = Vessel
        requiredValue = true
        uniquenessCheck = CONTRACT_ACTIVE
        targetVessel1 = AllVessels().Where(v => (v.VesselType() == Base && v.IsLanded()) || (v.VesselType() == Station) && v.CrewCount()<1 && v.EmptyCrewSpace()>0).SelectUnique()
        title = Must have an uncrewed base or station with seats to fill
    }    
    DATA
    {
        type = Location
        vesselLocation = @targetVessel1.Location()
        hidden = true
    }
    DATA
    {
        type = CelestialBody
        requiredValue = true
        targetBody1 = @/targetVessel1.CelestialBody()
        hidden = true
    }
    
        DATA
    {
        type = double
        requiredValue = true
        CrewSpace = @/targetVessel1.EmptyCrewSpace()
    }

    PARAMETER
    {
        name = VesselParameterGroup
        type = VesselParameterGroup
        vessel = @/targetVessel1
        
        PARAMETER
        {
            name = HasCrew
            type = HasCrew        
            disableOnStateChange = true
            minCrew = 1
            maxCrew = @/CrewSpace
        }
    }
    
    REQUIREMENT
    {
        name = CompleteContract
        type = CompleteContract
        minCount = 0
        contractType = CrewRotation
        cooldownDuration = 10d
    }
    
    // REQUIREMENT
    // {
        // name = Expression
        // type = Expression
        // checkOnActiveContract = false
        // expression = !@/targetBody1.IsHomeWorld()
    // }
}
 

I do think it is line 67 saying >> maxCrew = @/CrewSpace << that has the issue for some parts maybe. How can this be fixed? Maybe some kind on max function between the expression that is and 1? I'm really weak at the syntax for contract configurator.... sorry....

Link to comment
Share on other sites

3 minutes ago, Warezcrawler said:

I do believe that fixed the problem.... The Exceptions are at least gone, so further playing will show if it still works, but I would expect so.

However, I have another issue

I do think the following comes from "KerbinSpaceStation" contract pack

  Hide contents

[EXC 22:58:36.728] ArgumentException: Must be greater than or equal to 1
    ContractConfigurator.Validation.GE[Int32] (Int32 val, Int32 referenceValue)
    ContractConfigurator.HasCrewFactory.<Load>b__7_8 (Int32 x)
    ContractConfigurator.ConfigNodeUtil.ParseValue[Int32] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Int32 defaultValue, System.Func`2 validation)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Int32, Func`2)
    ContractConfigurator.HasCrewFactory:Load(ConfigNode)
    ContractConfigurator.ParameterFactory:GenerateParameterFactory(ConfigNode, ContractType, ParameterFactory&, ParameterFactory)
    ContractConfigurator.ParameterFactory:GenerateParameterFactory(ConfigNode, ContractType, ParameterFactory&, ParameterFactory)
    ContractConfigurator.ContractType:Load(ConfigNode)
    ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext()
    ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)

Where the contract which has issues would be

  Hide contents

CONTRACT_TYPE
{
    name = BasePopulation
    title = Crew a Base or Station
    genericTitle = Crew a Base or Station
    group = BasesandStations
    description = Our engineers are happy to to have completed @/targetVessel1, but they think that some Kerbals on board would be good.
    genericDescription = Our engineers are happy to to have finished work, but they think that some Kerbals on board would be good.
    synopsis = We want you to bring some Kerbals to @/targetVessel1.
    completedMessage = You have successfully crewed @/targetVessel1.
    minExpiry = 0.0
    maxExpiry = 7.0
    cancellable = true
    declinable = true 
    autoAccept = false
    prestige = Significant   
    targetBody = @/targetBody1
    maxSimultaneous = 1   
    rewardScience = 0.0
    rewardReputation = 10.0
    rewardFunds = Random(40000, 70000)
    failureReputation = 10.00
    failureFunds = 100000.0
    advanceFunds = 1000.0 
    
    DATA
    {
        type = Vessel
        requiredValue = true
        uniquenessCheck = CONTRACT_ACTIVE
        targetVessel1 = AllVessels().Where(v => (v.VesselType() == Base && v.IsLanded()) || (v.VesselType() == Station) && v.CrewCount()<1 && v.EmptyCrewSpace()>0).SelectUnique()
        title = Must have an uncrewed base or station with seats to fill
    }    
    DATA
    {
        type = Location
        vesselLocation = @targetVessel1.Location()
        hidden = true
    }
    DATA
    {
        type = CelestialBody
        requiredValue = true
        targetBody1 = @/targetVessel1.CelestialBody()
        hidden = true
    }
    
        DATA
    {
        type = double
        requiredValue = true
        CrewSpace = @/targetVessel1.EmptyCrewSpace()
    }

    PARAMETER
    {
        name = VesselParameterGroup
        type = VesselParameterGroup
        vessel = @/targetVessel1
        
        PARAMETER
        {
            name = HasCrew
            type = HasCrew        
            disableOnStateChange = true
            minCrew = 1
            maxCrew = @/CrewSpace
        }
    }
    
    REQUIREMENT
    {
        name = CompleteContract
        type = CompleteContract
        minCount = 0
        contractType = CrewRotation
        cooldownDuration = 10d
    }
    
    // REQUIREMENT
    // {
        // name = Expression
        // type = Expression
        // checkOnActiveContract = false
        // expression = !@/targetBody1.IsHomeWorld()
    // }
}
 

I do think it is line 67 saying >> maxCrew = @/CrewSpace << that has the issue for some parts maybe. How can this be fixed? Maybe some kind on max function between the expression that is and 1? I'm really weak at the syntax for contract configurator.... sorry....

Yup, pretty much it:

        CrewSpace = Max(@/targetVessel1.EmptyCrewSpace(), 1)

It probably should have a type of int instead of double as well.

 

Link to comment
Share on other sites

1 minute ago, nightingale said:

Yup, pretty much it:

        CrewSpace = Max(@/targetVessel1.EmptyCrewSpace(), 1)

It probably should have a type of int instead of double as well.

 

Thanks... will try it out tomorrow after work :)

Regarding int versus double.... Is that a comment on contract configurator internally or is that something for the contract definition to define somehow (i.e. in the cfg)? Does that make sense?

Link to comment
Share on other sites

21 minutes ago, Warezcrawler said:

Thanks... will try it out tomorrow after work :)

Regarding int versus double.... Is that a comment on contract configurator internally or is that something for the contract definition to define somehow (i.e. in the cfg)? Does that make sense?

In the config - it would've been more obvious if I'd included the context:

    DATA
    {
        type = double
        requiredValue = true
        CrewSpace = Max(@/targetVessel1.EmptyCrewSpace(), 1)
    }

 

Link to comment
Share on other sites

11 minutes ago, nightingale said:

In the config - it would've been more obvious if I'd included the context:


    DATA
    {
        type = double
        requiredValue = true
        CrewSpace = Max(@/targetVessel1.EmptyCrewSpace(), 1)
    }

 

Ahhh. I see. I’ll try it as integer. Makes much more sense. I have no use for partial crew......

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...