Mark Kerbin Posted May 14, 2018 Share Posted May 14, 2018 Well guess I’ll be figuring out how to make one. Quote Link to comment Share on other sites More sharing options...
nightingale Posted May 14, 2018 Author Share Posted May 14, 2018 4 hours ago, Mark Kerbin said: Well guess I’ll be figuring out how to make one. Sure, I'd love a pull request. I'll likely be looking at doing some dev this week - there's a couple issues on the tracker that I need to look at (including one that @inigma has been patiently waiting for). If you raise an enhancement I may be able to get something for you, I'll likely just enhance SpawnKerbal with an option to spawn to the AC instead of in-world. Quote Link to comment Share on other sites More sharing options...
Mark Kerbin Posted May 14, 2018 Share Posted May 14, 2018 (edited) I’ll investigate a bit and then give you the beginings of a pull request. Edit Actually, not sure if I know enough to make a new behavior. I would greatly appreciate if you could just tack on an “add to roster” option to spawnkerbal. In the mean time I have a work around for what I wanted to do with it, so don’t feel like I am waiting on you. (Yeah I’m being vague to avoid over promising on Kerbal Academy’s next update) Sorry for any spelling weirdness, school WiFi and autocorrect are not a good combo. Edited May 14, 2018 by Mark Kerbin Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted May 15, 2018 Share Posted May 15, 2018 Not sure if this is a bug or not. The following line: maxAltitude = @/targetBody1.IsSun() ? 113549713200 : @/targetBody1 == Gilly ? 16000 : @/targetBody1.SpaceAltitudeThreshold() Errors when Gilly doesn't exist in a system. This happens in GPP, and others (I've only tested this in GPP). Changing it to the following works: %maxAltitude = @/targetBody1.IsSun() ? 113549713200 : @/targetBody1.SpaceAltitudeThreshold() For now, I've worked around this by using a MM script to replace the line if Kopernicus is installed, but it is an inelegant way to do this Error below: ArgumentException: 'Gilly' is not a valid CelestialBody. at ContractConfigurator.ConfigNodeUtil.ParseCelestialBodyValue (System.String celestialName) [0x00000] in <filename unknown>:0 at ContractConfigurator.ExpressionParser.CelestialBodyParser.ParseIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseVarOrIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseSimpleStatement[CelestialBody] () [0x00000] in <filename unknown>:0 Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation. at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].ParseStatement[Double] () [0x00000] in <filename unknown>:0 Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation. at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].ParseStatement[Double] () [0x00000] in <filename unknown>:0 Rethrow as Exception: Error parsing statement. Error occurred near '*': @/targetBody1.IsSun() ? 113549713200 : @/targetBody1 == Gilly ? 16000 : @/targetBody1.SpaceAltitudeThreshold() .......................* <-- HERE at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Double].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Double] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 at ContractConfigurator.ConfigNodeUtil.ParseValue[Double] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 at ContractConfigurator.ConfigNodeUtil.ParseValue[Double] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Double defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object) UnityEngine.DebugLogHandler:LogException(Exception, Object) UnityEngine.Logger:LogException(Exception, Object) UnityEngine.Debug:LogException(Exception) ContractConfigurator.LoggingUtil:LogException(Exception) ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Double, Func`2) ContractConfigurator.OrbitFactory:Load(ConfigNode) ContractConfigurator.ParameterFactory:GenerateParameterFactory(ConfigNode, ContractType, ParameterFactory&, ParameterFactory) ContractConfigurator.ParameterFactory:GenerateParameterFactory(ConfigNode, ContractType, ParameterFactory&, ParameterFactory) ContractConfigurator.ContractType:Load(ConfigNode) ContractConfigurator.<LoadContractTypeConfig>d__29:MoveNext() ContractConfigurator.<FinalizeContractTypeLoad>d__28:MoveNext() UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) (Filename: Line: -1) Quote Link to comment Share on other sites More sharing options...
nightingale Posted May 15, 2018 Author Share Posted May 15, 2018 @linuxgurugamer - Not a bug, there isn't very good handling for constants sourced from things like CelestialBodies that may not exist in some cases. ModuleManager patch, something based on min body radius or the space altitude threshold are going to be your best bets. Trying to think if there's a good alternative to fix it - if I let it resolve to null if the CB doesn't exist, then you lose out on potentially valuable error checking. Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted May 15, 2018 Share Posted May 15, 2018 35 minutes ago, nightingale said: @linuxgurugamer - Not a bug, there isn't very good handling for constants sourced from things like CelestialBodies that may not exist in some cases. ModuleManager patch, something based on min body radius or the space altitude threshold are going to be your best bets. Trying to think if there's a good alternative to fix it - if I let it resolve to null if the CB doesn't exist, then you lose out on potentially valuable error checking. How about a generic CB, which is used if it doesn’t exist? Not sure if it will work, but it’s an idea. Quote Link to comment Share on other sites More sharing options...
LatiMacciato Posted May 15, 2018 Share Posted May 15, 2018 3 minutes ago, linuxgurugamer said: How about a generic CB, which is used if it doesn’t exist? Not sure if it will work, but it’s an idea. Procedural CB scanning, now that seems interesting! Quote Link to comment Share on other sites More sharing options...
TrueVulgarian Posted May 16, 2018 Share Posted May 16, 2018 On 5/12/2018 at 7:15 AM, Gordon Dry said: After I enabled it and went back to main menu and loaded the save I immediately got nearly a dozen of rescue contracts available. Odd. I can only guess my mods are conflicting or there is something in my savegames preventing it. Both were started on older versions. (1.4.0?) Maybe I'll try with a new game to see if it works then. Quote Link to comment Share on other sites More sharing options...
nightingale Posted May 18, 2018 Author Share Posted May 18, 2018 @linuxgurugamer - I spent some time thinking about your issue and I think I'm going to change it to just return null on a non-match. There's so few cases where the "error handling" is helpful and so many cases where you need flexibility due to planet packs that I think it'll just work better this way. So expect that to get fixed for you in the next release. Quote Link to comment Share on other sites More sharing options...
linuxgurugamer Posted May 18, 2018 Share Posted May 18, 2018 7 hours ago, nightingale said: @linuxgurugamer - I spent some time thinking about your issue and I think I'm going to change it to just return null on a non-match. There's so few cases where the "error handling" is helpful and so many cases where you need flexibility due to planet packs that I think it'll just work better this way. So expect that to get fixed for you in the next release. Actually not my issue (originally), this is in the Bases and Stations pack. However, sice it is currently unmaintained, I may adopt it. Quote Link to comment Share on other sites More sharing options...
goblinsrus4 Posted May 18, 2018 Share Posted May 18, 2018 help i have contract configurator v1.25.0 on ksp 1.4.3 it works ok but it not showing textures just a white background at mission control and tracking centre Quote Link to comment Share on other sites More sharing options...
nightingale Posted May 18, 2018 Author Share Posted May 18, 2018 46 minutes ago, goblinsrus4 said: help i have contract configurator v1.25.0 on ksp 1.4.3 it works ok but it not showing textures just a white background at mission control and tracking centre I'm unaware of issues with 1.4.3, but I haven't tested extensively. I'd need a KSP.log to be able to comment any further though. Quote Link to comment Share on other sites More sharing options...
Kematia Posted May 20, 2018 Share Posted May 20, 2018 (edited) Hello, how do you increase the maximum amount of contracts that can be accepted? I've looked all over and I couldn't find anything on it. This fella right here Thanks! Edited May 20, 2018 by Kematia Quote Link to comment Share on other sites More sharing options...
IntoSpaceAgain Posted May 20, 2018 Share Posted May 20, 2018 To increase the number of contracts you can accept, you have to upgrade the Mission Control building. The starting level gives you 2 contracts max, the second level gives you 7 contracts (I think) and the final level gives you unlimited contracts. For clarity, just in case you don't already know, to upgrade any of the buildings of the Space Centre simply right-click on them to bring up their menu. Quote Link to comment Share on other sites More sharing options...
Brigadier Posted May 20, 2018 Share Posted May 20, 2018 2 hours ago, IntoSpaceAgain said: To increase the number of contracts you can accept, you have to upgrade the Mission Control building. The starting level gives you 2 contracts max, the second level gives you 7 contracts (I think) and the final level gives you unlimited contracts. For clarity, just in case you don't already know, to upgrade any of the buildings of the Space Centre simply right-click on them to bring up their menu. I believe there are also contract difficulty limits, i.e. you can only have so many of each of the three contract difficulty levels, even when the MC is fully upgraded, effectively limiting the total number of contracts. In my case, that's 12, 9 and 6 for trivial, significant and exceptional, respectively. He may be asking how to increase those limits. Maybe this thread can help. Quote Link to comment Share on other sites More sharing options...
CT96B Posted May 21, 2018 Share Posted May 21, 2018 I'm working on a contract which will spawn kerbals of a specific name, but it doesn't seem to want to work. Here is the pertinent part of the contract: BEHAVIOUR { name = SpawnKerbal type = SpawnKerbal KERBAL { kerbal = NewKerbal(Male,"Pilot", "Norman Thuot") kerbalType = Crew owned = true addToRoster = True targetBody = HomeWorld() lat = 10.5959 lon = 239.8044 alt = 0 heading = 180.0 } } And here is the error I am getting in the log when it is called: [EXC 18:44:11.553] MissingMethodException: Method not found: 'ProtoCrewMember.ChangeName'. ContractConfigurator.Behaviour.SpawnKerbal.OnAccepted () ContractConfigurator.ContractBehaviour.Accept () ContractConfigurator.ConfiguredContract.OnAccepted () Contracts.Contract.SetState (State newState) Contracts.Contract.Accept () ContractConfigurator.Util.MissionControlUI.OnClickAccept () UnityEngine.Events.InvokableCall.Invoke (System.Object[] args) UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) UnityEngine.Events.UnityEventBase.Invoke (System.Object[] parameters) UnityEngine.Events.UnityEvent.Invoke () UnityEngine.UI.Button.Press () UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) UnityEngine.EventSystems.EventSystem:Update() I am running KSP.x86_64 version 3.1.1 and ContractConfigurator 1.24.4.0 I tried running the SpawnKerbal behavior detailed on the wiki https://github.com/jrossignol/ContractConfigurator/wiki/SpawnKerbal-Behaviour but that won't even load the contract to run. Suggestions, pointers, questions? What am I missing in how to do this? Quote Link to comment Share on other sites More sharing options...
inigma Posted May 24, 2018 Share Posted May 24, 2018 On 5/2/2018 at 10:03 PM, nightingale said: @inigma - I'll have to play around with it, but won't have time until at least the weekend. If you have a suggestion as to what you think would make sense syntax-wise feel free to raise the github issue. @theonegalen - It's pretty much as @Ger_space says when it comes to the KK integration. It looks like I never added the documentation when I pulled that stuff in from AlphaAsh though - I'll have to remember to do that. For the moment you'll have to either read the code yourself or use Kerbin Side Jobs or Side-GAP as an example. I just saw CKAN updated to show CC 1.25 compatible with KSP 1.4.3? Is this confirmed? Quote Link to comment Share on other sites More sharing options...
nightingale Posted May 24, 2018 Author Share Posted May 24, 2018 @Kematia - It's in the difficulty settings, there's a global multiplier. @CT96B - You'll need to be running KSP 1.4.x (ideally 1.4.3). I don't know what 3.1.1 is, probably 1.1.3, but either way you'll definitely need to be on the latest. @inigma - Officially no, but I didn't expect it to take so long to get my release out. The existing version seems to run fine against 1.4.3, but I always want to at least get a recompile in because there's historically always been *something* wrong. I expected CKAN to use the version file that is part of the tarball, but looks like it's all too happy to go to GitHub where I've made updates. I gave up on figuring out why CKAN does certain things long ago. Quote Link to comment Share on other sites More sharing options...
CT96B Posted May 24, 2018 Share Posted May 24, 2018 Sorry @nightingale - dyslexia strikes again. I meant 1.3.1 Unfortunately, for other mods I want to run I'm stuck at no higher than 1.3.1. I'm willing to run 1.4.x to debug the cfg. I will setup and try that this weekend - but the documentation to the mod and the mod itself don't seem to agree on SpawnKerbal. I'm not asking anyone to fix it - I'm asking how it's supposed to work without having to reverse the code to make it work. From the Sample Code on the wiki: BEHAVIOUR { name = SpawnKerbal type = SpawnKerbal KERBAL { kerbal = NewKerbal("Engineer") name = Kerbediah Kerman //variable 'name' not known, ignoring. gender = Female kerbalType = Unowned owned = true addToRoster = true targetBody = Kerbin lat = 10.595910968977 lon = 239.804476675472 alt = 387.929475510377 heading = 180.0 } } This generates the following exception: [EXC 16:28:15.827] ArgumentException: Expected ',' or ')', got: end of statement ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) 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 '*': NewKerbal("Engineer") ..........* <-- 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) ContractConfigurator.Behaviour.SpawnKerbal:Create(ConfigNode, SpawnKerbalFactory) ContractConfigurator.Behaviour.SpawnKerbalFactory:Load(ConfigNode) ContractConfigurator.BehaviourFactory:GenerateBehaviourFactory(ConfigNode, ContractType, BehaviourFactory&) ContractConfigurator.ContractType:Load(ConfigNode) ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext() ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext() UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) So CLEARLY the SpawnKerbal function does not work as advertised. By iterative effort I was able to get it to at least stop throwing an exception when trying to parse in the contract, but it still won't execute the contract without the previously listed exception. The wiki page in question hasn't been updated since 2016 - so regardless if I'm running 1.3.1 from 2017 or 1.4.x from 2018, it's not working. I am 100% certain I am doing something wrong in my config, but absent some working documentation I am left with two options: Ask, or reverse engineer the code myself. I asked. Quote Link to comment Share on other sites More sharing options...
CT96B Posted May 24, 2018 Share Posted May 24, 2018 For the record, here is my whole contract: CONTRACT_TYPE { name = M2 group = NASARecruits title = M2 description = The Aggregate 3 (M1) was the third in a series of ballistic missiles designed and developed by Wernher von Braun in 1937 under the leadership of Dr. Walter Robert Dornberger, at Kummersdorf south of Berlin. synopsis = Launch the M1 ballistic missile completedMessage = Mission Success! agent = NASA minExpiry = 1 maxExpiry = 30 deadline = 70 prestige = Trivial targetBody = HomeWorld() maxCompletions = 1 rewardScience = 2500 rewardReputation = 25 rewardFunds = 7500 advanceFunds = 10000 PARAMETER { name = M2 type = VesselParameterGroup PARAMETER { name = NewVessel type = NewVessel hidden = true } PARAMETER { name = Crewmembers type = HasCrew minCrew = 0 maxCrew = 1 } PARAMETER { name = ReachState type = ReachState situation = FLYING } } BEHAVIOUR { name = SpawnKerbal type = SpawnKerbal KERBAL { kerbal = NewKerbal("Engineer") name = Kerbediah Kerman gender = Female kerbalType = Unowned owned = true addToRoster = true targetBody = Kerbin lat = 10.595910968977 lon = 239.804476675472 alt = 387.929475510377 heading = 180.0 } } } which is itself mostly a copy from somewhere else just trying to make this behaviour work. And here is the full output of that contract import: [LOG 18:50:12.071] [INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'M2' [ERR 18:50:12.076] ContractConfigurator.Behaviour.SpawnKerbalFactory: CONTRACT_TYPE 'M2', BEHAVIOUR 'Kerbediah Kerman' of type 'SpawnKerbal: Error parsing kerbal [EXC 18:50:12.187] DataStoreCastException: Cannot cast from System.String to ProtoCrewMember+Gender. ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ConvertType[Gender] (System.String value) ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseStatement[Gender] (System.String lval) 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[ProtoCrewMember+Gender].ParseStatement[Gender] () Rethrow as DataStoreCastException: Cannot cast from System.String to ProtoCrewMember+Gender. ContractConfigurator.ExpressionParser.ExpressionParser`1[ProtoCrewMember+Gender].ParseStatement[Gender] () 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].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) Rethrow as DataStoreCastException: Cannot cast from System.String to ProtoCrewMember+Gender. ContractConfigurator.ExpressionParser.ExpressionParser`1[T].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) ContractConfigurator.ExpressionParser.ExpressionParser`1[System.String].ParseMethod[String] (ContractConfigurator.ExpressionParser.Token token, System.String 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.String to ProtoCrewMember+Gender. ContractConfigurator.ExpressionParser.ExpressionParser`1[ContractConfigurator.Kerbal].ParseStatement[Kerbal] () Rethrow as Exception: Error parsing statement. Error occurred near '*': NewKerbal("Engineer") ....................* <-- 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) ContractConfigurator.Behaviour.SpawnKerbal:Create(ConfigNode, SpawnKerbalFactory) ContractConfigurator.Behaviour.SpawnKerbalFactory:Load(ConfigNode) ContractConfigurator.BehaviourFactory:GenerateBehaviourFactory(ConfigNode, ContractType, BehaviourFactory&) ContractConfigurator.ContractType:Load(ConfigNode) ContractConfigurator.<LoadContractTypeConfig>d__30:MoveNext() ContractConfigurator.<FinalizeContractTypeLoad>d__29:MoveNext() UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr) [WRN 18:50:12.188] ContractConfigurator.Behaviour.SpawnKerbalFactory: CONTRACT_TYPE 'M2', BEHAVIOUR 'SpawnKerbal' of type 'SpawnKerbal': unexpected attribute 'name' found, ignored. [WRN 18:50:12.188] ContractConfigurator.Behaviour.SpawnKerbalFactory: CONTRACT_TYPE 'M2', BEHAVIOUR 'SpawnKerbal' of type 'SpawnKerbal': unexpected attribute 'gender' found, ignored. [WRN 18:50:12.188] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'M2' Quote Link to comment Share on other sites More sharing options...
nightingale Posted May 25, 2018 Author Share Posted May 25, 2018 @CT96B - See the expression documentation for the Kerbal class. Because of the way overloading works in CC expressions, that particular function signature got renamed some time ago from NewKerbal to NewKerbalWithTrait. I'll fix the sample in the wiki. Quote Link to comment Share on other sites More sharing options...
CT96B Posted May 27, 2018 Share Posted May 27, 2018 Thank you @nightingale! I finally got it to spawn without throwing exceptions. BEHAVIOUR { name = SpawnKerbal type = SpawnKerbal KERBAL { kerbal = NewKerbal(Female, "Kerbediah Kerman", "Engineer") kerbalType = Crew owned = true addToRoster = True targetBody = HomeWorld() pqsCity = KSC pqsOffset = 800, 5, 24 } } Spawns the kerbal just north of the runway, which for what I'm doing with this is just fine. Now on to figure out some alternate name generation and how to use the persistent datastore... Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted May 29, 2018 Share Posted May 29, 2018 @nightingale Today I had 2 occasions that manned mission contracts (early career ones) have been fulfilled by probe missions as soon as they have been destroyed in focus (reentry impact for spent upper stage debris). There was no exception regarding contracts in the log, just the message "Congratulation ..." Is this known? Quote Link to comment Share on other sites More sharing options...
Kardea Posted May 30, 2018 Share Posted May 30, 2018 So, I've been using Contract Configurator for quite a while now but finally got around to picking up a whole slew of contract packs, which are great so far. However, it's filled up my contract list to the point where a lot of the vanilla (but important) contracts aren't appearing very often. It's my understanding that adjusting the slider in the difficulty setting for CC (the multiplier slider) should increase the amount of offered contracts that show up, but I'm not seeing any change at all, one way or another... Am I missing something? Quote Link to comment Share on other sites More sharing options...
Gordon Dry Posted May 30, 2018 Share Posted May 30, 2018 4 hours ago, Kardea said: Am I missing something? When altering the setup of CC it's always a good idea to quit to main menu and load the save again to make these changes occur. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.