Jump to content

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


nightingale

Recommended Posts

Hi nightingale,

I just had an additional idea for the contract restriction, make it so that the player can on the fly add contract packs. So basicly first i want to play the historic missions when they are done i want to play tourism (in the same save). So it should be possible to add another pack later and remove the other one.

Link to comment
Share on other sites

Hi nightingale,

I just had an additional idea for the contract restriction, make it so that the player can on the fly add contract packs. So basicly first i want to play the historic missions when they are done i want to play tourism (in the same save). So it should be possible to add another pack later and remove the other one.

It'll probably be a window with a list of all contract groups (roughly equivalent to a contract pack) and checkboxes. So you'd definitely be able to uncheck one and then check it on again at a later date.

Link to comment
Share on other sites

A few exception fixes, and improved mod support for Field Research. Download now!

Contract Configurator 1.2.4

  • Support for DMagic's Orbital Science and tomf's Impact! in science stuff (Field Research Contract Pack).
  • Fixed exception loading ContractVesselTracker (thanks GFBones).
  • Fixed exception in BiomeTracker when generating some Field Research contracts (thanks DaniDE).
  • Fixed contract failure when renaming vessels in RemoteTech contracts (thanks Svannon).

Link to comment
Share on other sites

I don't like pointing the finger at you... especially as in this case I'm not 100% it is you, but I think CC is causing some NRE's that are causing my KSS missions not to generate in specific circumstances.

I have a feeling this is my fault indirectly, in my last update I changed the name of one of the contracts, (from KerbinLSResupply to LSResupply) - and I wonder if this is the issue as I'm getting errors about that in the log too.

The frustrating thing is, I can't reproduce in a new save, only my old one where I had ran a couple of the old missions, so I suspect I probably broke something when I messed with the contract names.

I was hoping it was going to be the problem with ContractVesselTracker that you fixed in 1.2.4 (which would make sense, because only my contracts that need tracked vessels are falling over).

Full log is here: https://www.dropbox.com/s/ivrtklna104p7ty/output_log.txt?dl=0

save is here: https://www.dropbox.com/s/yy4n3w7yv3506xu/Career%20-%20Copy.zip?dl=0

List of mods: http://imgur.com/xXGg4nf,GMlZbCt#0

NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.CompleteContractRequirement.<RequirementMet>b__8 (ContractConfigurator.ConfiguredContract c) [0x00000] in <filename unknown>:0

at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[ContractConfigurator.ConfiguredContract].MoveNext () [0x00000] in <filename unknown>:0

at System.Linq.Enumerable.Count[ConfiguredContract] (IEnumerable`1 source) [0x00000] in <filename unknown>:0

at ContractConfigurator.CompleteContractRequirement.RequirementMet (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.CheckRequirement (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.RequirementsMet (ContractConfigurator.ConfiguredContract contract, ContractConfigurator.ContractType contractType, IEnumerable`1 contractRequirements) [0x00000] in <filename unknown>:0

Rethrow as Exception: ContractConfigurator: Exception checking requirements!

UnityEngine.Debug:Internal_LogException(Exception, Object)

UnityEngine.Debug:LogException(Exception)

ContractConfigurator.LoggingUtil:LogException(Exception)

ContractConfigurator.ContractRequirement:RequirementsMet(ConfiguredContract, ContractType, IEnumerable`1)

ContractConfigurator.ContractType:MeetRequirements(ConfiguredContract)

ContractConfigurator.ConfiguredContract:SelectContractType()

ContractConfigurator.ConfiguredContract:MeetRequirements()

Contracts.Contract:Generate(Type, ContractPrestige, Int32, State)

Contracts.ContractSystem:GenerateContract(Int32, ContractPrestige, Type)

Contracts.ContractSystem:GenerateContract(Int32&, ContractPrestige)

Contracts.ContractSystem:GenerateContracts(Int32&, ContractPrestige, Int32)

Contracts.ContractSystem:RefreshContracts()

Contracts.

:MoveNext()

(Filename: Line: -1)

NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.CompleteContractRequirement.<RequirementMet>b__8 (ContractConfigurator.ConfiguredContract c) [0x00000] in <filename unknown>:0

at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[ContractConfigurator.ConfiguredContract].MoveNext () [0x00000] in <filename unknown>:0

at System.Linq.Enumerable.Count[ConfiguredContract] (IEnumerable`1 source) [0x00000] in <filename unknown>:0

at ContractConfigurator.CompleteContractRequirement.RequirementMet (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.CheckRequirement (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.RequirementsMet (ContractConfigurator.ConfiguredContract contract, ContractConfigurator.ContractType contractType, IEnumerable`1 contractRequirements) [0x00000] in <filename unknown>:0

Rethrow as Exception: ContractConfigurator: Exception checking requirements!

UnityEngine.Debug:Internal_LogException(Exception, Object)

UnityEngine.Debug:LogException(Exception)

ContractConfigurator.LoggingUtil:LogException(Exception)

ContractConfigurator.ContractRequirement:RequirementsMet(ConfiguredContract, ContractType, IEnumerable`1)

ContractConfigurator.ContractType:MeetRequirements(ConfiguredContract)

ContractConfigurator.ConfiguredContract:SelectContractType()

ContractConfigurator.ConfiguredContract:MeetRequirements()

Contracts.Contract:Generate(Type, ContractPrestige, Int32, State)

Contracts.ContractSystem:GenerateContract(Int32, ContractPrestige, Type)

Contracts.ContractSystem:GenerateContract(Int32&, ContractPrestige)

Contracts.ContractSystem:GenerateContracts(Int32&, ContractPrestige, Int32)

Contracts.ContractSystem:RefreshContracts()

Contracts.

:MoveNext()

(Filename: Line: -1)

NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.CompleteContractRequirement.<RequirementMet>b__8 (ContractConfigurator.ConfiguredContract c) [0x00000] in <filename unknown>:0

at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[ContractConfigurator.ConfiguredContract].MoveNext () [0x00000] in <filename unknown>:0

at System.Linq.Enumerable.Count[ConfiguredContract] (IEnumerable`1 source) [0x00000] in <filename unknown>:0

at ContractConfigurator.CompleteContractRequirement.RequirementMet (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.CheckRequirement (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.RequirementsMet (ContractConfigurator.ConfiguredContract contract, ContractConfigurator.ContractType contractType, IEnumerable`1 contractRequirements) [0x00000] in <filename unknown>:0

Rethrow as Exception: ContractConfigurator: Exception checking requirements!

UnityEngine.Debug:Internal_LogException(Exception, Object)

UnityEngine.Debug:LogException(Exception)

ContractConfigurator.LoggingUtil:LogException(Exception)

ContractConfigurator.ContractRequirement:RequirementsMet(ConfiguredContract, ContractType, IEnumerable`1)

ContractConfigurator.ContractType:MeetRequirements(ConfiguredContract)

ContractConfigurator.ConfiguredContract:SelectContractType()

ContractConfigurator.ConfiguredContract:MeetRequirements()

Contracts.Contract:Generate(Type, ContractPrestige, Int32, State)

Contracts.ContractSystem:GenerateContract(Int32, ContractPrestige, Type)

Contracts.ContractSystem:GenerateContract(Int32&, ContractPrestige)

Contracts.ContractSystem:GenerateContracts(Int32&, ContractPrestige, Int32)

Contracts.ContractSystem:RefreshContracts()

Contracts.

:MoveNext()

Link to comment
Share on other sites

I don't like pointing the finger at you... especially as in this case I'm not 100% it is you, but I think CC is causing some NRE's that are causing my KSS missions not to generate in specific circumstances.

I have a feeling this is my fault indirectly, in my last update I changed the name of one of the contracts, (from KerbinLSResupply to LSResupply) - and I wonder if this is the issue as I'm getting errors about that in the log too.

The frustrating thing is, I can't reproduce in a new save, only my old one where I had ran a couple of the old missions, so I suspect I probably broke something when I messed with the contract names.

I was hoping it was going to be the problem with ContractVesselTracker that you fixed in 1.2.4 (which would make sense, because only my contracts that need tracked vessels are falling over).

Full log is here: https://www.dropbox.com/s/ivrtklna104p7ty/output_log.txt?dl=0

save is here: https://www.dropbox.com/s/yy4n3w7yv3506xu/Career%20-%20Copy.zip?dl=0

List of mods: http://imgur.com/xXGg4nf,GMlZbCt#0

NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.CompleteContractRequirement.<RequirementMet>b__8 (ContractConfigurator.ConfiguredContract c) [0x00000] in <filename unknown>:0

at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[ContractConfigurator.ConfiguredContract].MoveNext () [0x00000] in <filename unknown>:0

at System.Linq.Enumerable.Count[ConfiguredContract] (IEnumerable`1 source) [0x00000] in <filename unknown>:0

at ContractConfigurator.CompleteContractRequirement.RequirementMet (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.CheckRequirement (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.RequirementsMet (ContractConfigurator.ConfiguredContract contract, ContractConfigurator.ContractType contractType, IEnumerable`1 contractRequirements) [0x00000] in <filename unknown>:0

Rethrow as Exception: ContractConfigurator: Exception checking requirements!

UnityEngine.Debug:Internal_LogException(Exception, Object)

UnityEngine.Debug:LogException(Exception)

ContractConfigurator.LoggingUtil:LogException(Exception)

ContractConfigurator.ContractRequirement:RequirementsMet(ConfiguredContract, ContractType, IEnumerable`1)

ContractConfigurator.ContractType:MeetRequirements(ConfiguredContract)

ContractConfigurator.ConfiguredContract:SelectContractType()

ContractConfigurator.ConfiguredContract:MeetRequirements()

Contracts.Contract:Generate(Type, ContractPrestige, Int32, State)

Contracts.ContractSystem:GenerateContract(Int32, ContractPrestige, Type)

Contracts.ContractSystem:GenerateContract(Int32&, ContractPrestige)

Contracts.ContractSystem:GenerateContracts(Int32&, ContractPrestige, Int32)

Contracts.ContractSystem:RefreshContracts()

Contracts.

:MoveNext()

(Filename: Line: -1)

NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.CompleteContractRequirement.<RequirementMet>b__8 (ContractConfigurator.ConfiguredContract c) [0x00000] in <filename unknown>:0

at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[ContractConfigurator.ConfiguredContract].MoveNext () [0x00000] in <filename unknown>:0

at System.Linq.Enumerable.Count[ConfiguredContract] (IEnumerable`1 source) [0x00000] in <filename unknown>:0

at ContractConfigurator.CompleteContractRequirement.RequirementMet (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.CheckRequirement (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.RequirementsMet (ContractConfigurator.ConfiguredContract contract, ContractConfigurator.ContractType contractType, IEnumerable`1 contractRequirements) [0x00000] in <filename unknown>:0

Rethrow as Exception: ContractConfigurator: Exception checking requirements!

UnityEngine.Debug:Internal_LogException(Exception, Object)

UnityEngine.Debug:LogException(Exception)

ContractConfigurator.LoggingUtil:LogException(Exception)

ContractConfigurator.ContractRequirement:RequirementsMet(ConfiguredContract, ContractType, IEnumerable`1)

ContractConfigurator.ContractType:MeetRequirements(ConfiguredContract)

ContractConfigurator.ConfiguredContract:SelectContractType()

ContractConfigurator.ConfiguredContract:MeetRequirements()

Contracts.Contract:Generate(Type, ContractPrestige, Int32, State)

Contracts.ContractSystem:GenerateContract(Int32, ContractPrestige, Type)

Contracts.ContractSystem:GenerateContract(Int32&, ContractPrestige)

Contracts.ContractSystem:GenerateContracts(Int32&, ContractPrestige, Int32)

Contracts.ContractSystem:RefreshContracts()

Contracts.

:MoveNext()

(Filename: Line: -1)

NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.CompleteContractRequirement.<RequirementMet>b__8 (ContractConfigurator.ConfiguredContract c) [0x00000] in <filename unknown>:0

at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[ContractConfigurator.ConfiguredContract].MoveNext () [0x00000] in <filename unknown>:0

at System.Linq.Enumerable.Count[ConfiguredContract] (IEnumerable`1 source) [0x00000] in <filename unknown>:0

at ContractConfigurator.CompleteContractRequirement.RequirementMet (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.CheckRequirement (ContractConfigurator.ConfiguredContract contract) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractRequirement.RequirementsMet (ContractConfigurator.ConfiguredContract contract, ContractConfigurator.ContractType contractType, IEnumerable`1 contractRequirements) [0x00000] in <filename unknown>:0

Rethrow as Exception: ContractConfigurator: Exception checking requirements!

UnityEngine.Debug:Internal_LogException(Exception, Object)

UnityEngine.Debug:LogException(Exception)

ContractConfigurator.LoggingUtil:LogException(Exception)

ContractConfigurator.ContractRequirement:RequirementsMet(ConfiguredContract, ContractType, IEnumerable`1)

ContractConfigurator.ContractType:MeetRequirements(ConfiguredContract)

ContractConfigurator.ConfiguredContract:SelectContractType()

ContractConfigurator.ConfiguredContract:MeetRequirements()

Contracts.Contract:Generate(Type, ContractPrestige, Int32, State)

Contracts.ContractSystem:GenerateContract(Int32, ContractPrestige, Type)

Contracts.ContractSystem:GenerateContract(Int32&, ContractPrestige)

Contracts.ContractSystem:GenerateContracts(Int32&, ContractPrestige, Int32)

Contracts.ContractSystem:RefreshContracts()

Contracts.

:MoveNext()

No problem, was an easy fix. Basically it's finding "old" contracts in the save file that it can't associate to a contract type anymore, and that causes it to fail. Problem is fixed for the next release.

And yeah, my rule of thumb is that any unhandled exception (an unhandled one being any exception that doesn't have an [ERR] message right before it in the log) like this is a bug in Contract Configurator. :)

Not sure when it'll be released - feeling sick today so most likely won't be spending a lot of time working on getting a release out. There's still a few things to fix for Field Research, so for sure by the weekend, I'd imagine.

Link to comment
Share on other sites

No problem, was an easy fix. Basically it's finding "old" contracts in the save file that it can't associate to a contract type anymore, and that causes it to fail. Problem is fixed for the next release.

And yeah, my rule of thumb is that any unhandled exception (an unhandled one being any exception that doesn't have an [ERR] message right before it in the log) like this is a bug in Contract Configurator. :)

Not sure when it'll be released - feeling sick today so most likely won't be spending a lot of time working on getting a release out. There's still a few things to fix for Field Research, so for sure by the weekend, I'd imagine.

No problem, now I know what the problem is I've managed to come up with a workaround for now. Concentrate on getting well, there is more to life than KSP *gasp*

Edit: looks like the CKAN bot may need a kick. I'm still not getting CC 1.2.4 being offered.

Edited by severedsolo
Link to comment
Share on other sites

Does a PartTest contract automatically make a part available in the VAB if it is not yet unlocked in the techtree?

I think I found it.

https://github.com/jrossignol/ContractConfigurator/wiki/Behaviours#experimentalpart

Edit: I change my question your honor, does the timer (e.g. hold for 10 sec) demand the vessel to be active or could I set it to three days, do something else and return for completion? If so, does the contract complete in background?

Edit2: Is there a way to set the vessel that completed the contract to unowned? And possibly set its type to debris?

Edited by KerbMav
Link to comment
Share on other sites

Does a PartTest contract automatically make a part available in the VAB if it is not yet unlocked in the techtree?

I think I found it.

https://github.com/jrossignol/ContractConfigurator/wiki/Behaviours#experimentalpart

Edit: I change my question your honor, does the timer (e.g. hold for 10 sec) demand the vessel to be active or could I set it to three days, do something else and return for completion? If so, does the contract complete in background?

The timer works in the background.

Edit2: Is there a way to set the vessel that completed the contract to unowned? And possibly set its type to debris?

Not currently. Issue [#44] has been around for this for some time, I'll see if I can do that for 1.3.0. Nothing for changing the vessel type, if that's something you need raise a GitHub issue and I'll try to get it done for 1.3.0 as well.

Link to comment
Share on other sites

New release, a few fixes related to Field Research and one for KSS. Download now!

Contract Configurator 1.2.5

  • Fixed NullReferenceException in CompleteContractRequirement (thanks severedsolo).
  • ImpactSeismometer and ImpactSpectrometer only available for airless bodies (thanks tomf).
  • Asteroid sample experiments are now classified as difficult (thanks tomf).
  • Added MainKSCBiomes() function to fix Field Research KSC contract.

Link to comment
Share on other sites

I am trying to set up a satellite recovery mission. I have problems with the PARAMETER sections, because the vessel names are drawn from a random list.

Here is what i have so far, but i get this error in the PARAMETER node

"Cannot convert from System.string to ConctractConfigurator.vesselIdentifier

What is the correct way to do this? And is there a Parameter for Vessel Recovery which I have missed (I am currently trying to check for LANDED-state, but actual recovery would be what i really want)? I only found Kerbal recovery in the Parameter list.


CONTRACT_TYPE
{
DATA
{
type = List<string>
vesselNames = [ "XTJ-23", "GKW12_alpha", "Keyhole Beta", "muuh", "blubb" ]
}

DATA
{
type = string
vesselName = @/vesselNames.Random()
}

DATA
{
type = List<string>
craftFiles = [ "ContractPacks/RescueAndRecovery/Crafts/unmanned/Sat1.craft", "ContractPacks/RescueAndRecovery/Crafts/unmanned/Sat2.craft", "ContractPacks/RescueAndRecovery/Crafts/unmanned/Sat3.craft" ]
}


// Unique name of the contract type (required)
name = SatServicing_Recovery

title = Recover the defunct satellite @/vesselName

[...]

BEHAVIOUR
{
name = SpawnVessel
type = SpawnVessel

VESSEL
{
name = @/vesselName

// Path to the .craft file (relative to the GameData/ directory)
craftURL = @/craftFiles.Random()
[...]

}//end VESSEL
}//end behaviour spawnvessel

PARAMETER
{
name = VesselParameterGroup
type = VesselParameterGroup

title = Land @/vesselName at Kerbin

duration = 10s

// Lock this parameter so that it can only be accomplished by the specified craft.
vessel = @/vesselName

PARAMETER
{
name = LandOnKerbin
type = ReachState
situation = LANDED
}
}
}

Link to comment
Share on other sites

I am trying to set up a satellite recovery mission. I have problems with the PARAMETER sections, because the vessel names are drawn from a random list.

Here is what i have so far, but i get this error in the PARAMETER node

What is the correct way to do this? And is there a Parameter for Vessel Recovery which I have missed (I am currently trying to check for LANDED-state, but actual recovery would be what i really want)? I only found Kerbal recovery in the Parameter list.

<snip>

One of the big problems is that there isn't really much guidance as to which types are required where... I really need to update the documentation to include that information, raised [#227] for that.

For your specific issue, try changing this:

DATA
{
type = List<[COLOR=#ff0000]string[/COLOR]>
vesselNames = [ "XTJ-23", "GKW12_alpha", "Keyhole Beta", "muuh", "blubb" ]
}

to this:

DATA{
type = List<[COLOR=#ff0000]VesselIdentifier[/COLOR]>
vesselNames = [ "XTJ-23", "GKW12_alpha", "Keyhole Beta", "muuh", "blubb" ]
}

I don't think I've tested a list of vessel identifiers like that, but it should still work. Let me know if you have issues.

Link to comment
Share on other sites

For your specific issue, try changing this:

...

I don't think I've tested a list of vessel identifiers like that, but it should still work. Let me know if you have issues.

Nope.

[Warning]: ContractConfigurator.ConfigNodeUtil: Got an unexpected exception trying to load 'vesselNames' as a list:

[Exception]: ArgumentException: Unexpected value: "

Anyway, I think that would just shift the problem to the sections where i use the @/vesselName (now as datatype "VesselIdentifier" as part of a string, or am I wrong?

I guess the solution would be to add automatic conversion between VesselIdentifier and System.string?

Thanks a lot for your continued work on this project!

Link to comment
Share on other sites

Nope.

Anyway, I think that would just shift the problem to the sections where i use the @/vesselName (now as datatype "VesselIdentifier" as part of a string, or am I wrong?

I guess the solution would be to add automatic conversion between VesselIdentifier and System.string?

Thanks a lot for your continued work on this project!

Yes, if I add the automatic conversion then your original approach would work. Try this out though:

DATA
{
type = List<VesselIdentifier>
vesselNames = [ XTJ-23, GKW12_alpha, Keyhole Beta, muuh, blubb ]
}

I suspect that XTJ-23 may be problematic though. If it is, raise an issue and I'll fix that.

Link to comment
Share on other sites

Yes, if I add the automatic conversion then your original approach would work. Try this out though:

I suspect that XTJ-23 may be problematic though. If it is, raise an issue and I'll fix that.

Works without the quotationmarks, even for the identifier with the minus. Thanks!

Link to comment
Share on other sites

And is there a Parameter for Vessel Recovery which I have missed (I am currently trying to check for LANDED-state, but actual recovery would be what i really want)? I only found Kerbal recovery in the Parameter list.

Realized I never addressed this. I don't have one for Vessel Recovery, but it could be done (raise a GitHub issue if you want it). Generally I go with ReturnHome instead (which just checks for landed or splashed). Mostly because when something goes wrong with recovery, it's hard to go back, so I always get a bit nervous. :)

Link to comment
Share on other sites

Anyone have a clue why I am getting:

Exception occured while attempt to generate contract of type 'Biome':

System.NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.ConfiguredContract.Generate () [0x00000] in <filename unknown>:0

Link to comment
Share on other sites

Anyone have a clue why I am getting:

Exception occured while attempt to generate contract of type 'Biome':

System.NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.ConfiguredContract.Generate () [0x00000] in <filename unknown>:0

That's the SCANsat Lite contract pack, and it's a bug I fixed a while back. Confirm that you are on the latest version of Contract Configurator (1.2.5). If you are, then post a full log and I'll investigate further.

Link to comment
Share on other sites

That's the SCANsat Lite contract pack, and it's a bug I fixed a while back. Confirm that you are on the latest version of Contract Configurator (1.2.5). If you are, then post a full log and I'll investigate further.

The top of the error box actually says: Contract Configurator 1.2.5 Exception... so pretty sure I'm on 1.2.5.

I'm not getting an actual dump or do you just want the load log? I'll see what I can do.

I also got an error about VCTScenario in the Debug Console followed bu a large number or 'ContractConfigurator.ConfiguredContract: Error generating contract.

Followed by NullRef exceptions but then a arguemnt out of range parameter name is: index.

If that is of help?

Here seems to be the relevant part of the log file:

[ERR 22:14:53.215] Cannot find a Module of typename 'VCTScenario'

[ERR 22:14:53.216] ScenarioModule is null.

[LOG 22:14:53.217] Loading Depletion Nodes

[LOG 22:14:53.217] DepNodeCount: 0

[LOG 22:14:53.217] Loading Biome Nodes

[LOG 22:14:53.218] BiomeNodeCount: 1

[LOG 22:14:53.218] Loading Planet Nodes

[LOG 22:14:53.218] PlanetNodeCount: 2

[LOG 22:14:53.219] 6/4/2015 10:14:53 PM,KerbalAlarmClock,No Alarms to Load

[LOG 22:14:53.223] [AsteroidSpawner]: No new objects this time. (Odds are 1:2)

[LOG 22:14:53.223] Tac.SpaceCenterManager[FFF4B630][128.69]: Start, new game = False

[LOG 22:14:53.224] Tac.AddLifeSupport[F8989F80][128.69]: Constructor

[ERR 22:14:53.253] Contract: Contract agent does not exist, randomizing agent

[EXC 22:14:53.254] ArgumentOutOfRangeException: Argument is out of range.

Parameter name: index

System.Collections.Generic.List`1[Contracts.Agents.Agent].get_Item (Int32 index)

Contracts.Agents.AgentList.GetAgentRandom ()

Contracts.Contract.Load (Contracts.Contract contract, .ConfigNode node)

Contracts.ContractSystem.LoadContract (.ConfigNode cNode)

Contracts.ContractSystem+

.MoveNext ()

[ERR 22:14:53.319] ContractConfigurator.ConfiguredContract: Error generating contract!

[EXC 22:14:53.319] NullReferenceException: Object reference not set to an instance of an object

ContractConfigurator.ConfiguredContract.Generate ()

UnityEngine.Debug:LogException(Exception)

ContractConfigurator.LoggingUtil:LogException(Exception)

ContractConfigurator.ConfiguredContract:Generate()

Contracts.Contract:Generate(Type, ContractPrestige, Int32, State)

Contracts.ContractSystem:GenerateContract(Int32, ContractPrestige, Type)

Contracts.ContractSystem:GenerateContract(Int32&, ContractPrestige)

Contracts.ContractSystem:GenerateContracts(Int32&, ContractPrestige, Int32)

Contracts.ContractSystem:RefreshContracts()

Contracts.

:MoveNext()

[EXC 22:14:53.351] ArgumentOutOfRangeException: Argument is out of range.

Parameter name: index

System.Collections.Generic.List`1[Contracts.Agents.Agent].get_Item (Int32 index)

Contracts.Agents.AgentList.GetAgentRandom ()

DMagic.Contracts.DMSurveyContract.Generate ()

Contracts.Contract.Generate (System.Type contractType, ContractPrestige difficulty, Int32 seed, State state)

Contracts.ContractSystem.GenerateContract (Int32 seed, ContractPrestige difficulty, System.Type contractType)

Contracts.ContractSystem.GenerateContract (System.Int32& seed, ContractPrestige difficulty)

Contracts.ContractSystem.GenerateContracts (System.Int32& seed, ContractPrestige difficulty, Int32 count)

Contracts.ContractSystem.RefreshContracts ()

Contracts.ContractSystem+

.MoveNext ()

I have gotten this /after/ reupdating (re-installing if you will) Contract Configurator, scansat, scansat contract pack lite, and remote tech contract pack... If that helps either.

Edited by OakTree42
Link to comment
Share on other sites

Ah, I see. It's directly caused by that argument out of range error. I fixed it so it won't error in Contract Configurator any more, but I have a strong feeling because it's not assigning an agent that you'll still have problems. Do you have other exceptions/errors related to agents near the top of your KSP.log? I've seen this before when you try to convert the agent image to DDS (KSP will fail to load it). There could be other causes like a bad agent configuration.

Link to comment
Share on other sites

AH HA!!!!! That's got to be it. I had to re-install some mods and I use DDS4KSP And I bet money it converted the agent to a DDS. Let me test this and get back to you.

Sorry, I should ask, agent image... I realized your images are not at issue as they weren't converted already... Where should I be looking? Sorry if I sound dumb here...

Edit: Ha, found them, agencies. So swapped them all back, and let's see how it works. Already having better luck and at least the contracts now show. Oddly now that error vanished that I first had!!

So you have helped me recover this save game file. :D

I do see you updated your mod, but this one thing seemed to be the entire cascade that started my issue. The problem is gone and the contracts are showing again.

Thank you VERY much. My twitch watchers probably thank you as well... as this was my core career save for my twitch stream. ;)

Edited by OakTree42
Updated status
Link to comment
Share on other sites

AH HA!!!!! That's got to be it. I had to re-install some mods and I use DDS4KSP And I bet money it converted the agent to a DDS. Let me test this and get back to you.

Yeah, stock DDS doesn't work everywhere, sadly. The other place you'll see problems is with the waypoint icons - but they will just show up as white square and won't cause any real problems. Agent load failures on the other hand are quite fatal. :(

Link to comment
Share on other sites

Nightingale,

I love your mod so far. unfortunately, I keep on stopping the game every time you update! :confused: Unfortunately, it seems like you are updating every other day! I was wondering are you going after each problem as it arises? or are you adding in daily as new idea's come to mind? I ask because I feel like if you did a weekly, or every other week update, I would enjoy your mod more(and not have to re-set the contracts as much!)!!

As I stated, i love your mod, it is the best contract mod I have used so far! It has made my career mode fun and exciting (and finally worthwhile to me). I don't want you to stop, just have bigger and less often updates!

P.S.

this is only a mild criticism, I mean no harm, and sorry if it comes through the wrong way (I can't write well due to a health reason- which also is why the constant updates drive me nuts, so i'm not fully sure if this sounds rude)

Link to comment
Share on other sites

Nightingale,

I love your mod so far. unfortunately, I keep on stopping the game every time you update! :confused: Unfortunately, it seems like you are updating every other day! I was wondering are you going after each problem as it arises? or are you adding in daily as new idea's come to mind? I ask because I feel like if you did a weekly, or every other week update, I would enjoy your mod more(and not have to re-set the contracts as much!)!!

As I stated, i love your mod, it is the best contract mod I have used so far! It has made my career mode fun and exciting (and finally worthwhile to me). I don't want you to stop, just have bigger and less often updates!

P.S.

this is only a mild criticism, I mean no harm, and sorry if it comes through the wrong way (I can't write well due to a health reason- which also is why the constant updates drive me nuts, so i'm not fully sure if this sounds rude)

Well, it really depends on a lot of factors, including the severity of the issue. If it's something that's potentially breaking someone's game, I'll tend to try and get a same day patch out. Because there's been some fairly major compatibility issues between various science mods and the new Field Research contract pack updates have been a little more frequent the last week. The "good" news is that my real job has just gotten crazy busy - so you're likely to see fewer updates for the next little while.

Also note that I try to follow semantic versioning:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. PATCH version when you make backwards-compatible bug fixes.

So the various 1.2.x releases have been bug-fix only releases. So I have to ask, when you say, "I keep on stopping the game every time you update", I'm not quite sure what you mean? Do you mean you have to restart KSP (in which case, sorry, can't do much about that)? Or that you cancel contracts and restart them (which generally shouldn't be necessary for changes to Contract Configurator, but could be necessary for a change in a specific contract pack)? Or do you mean you restart your entire career (which seems like massive overkill)?

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