Jump to content

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


nightingale

Recommended Posts

Help!! I have been trying to figure out what is going on with my game for weeks now and I am rapidly going bald as I pull my hair out trying to fathom what is going on!

Basically in a new save the part test contracts aren't showing up, so I guess the first question would be what are the requirements for these contracts to start showing up? Am I a dunce and miss remembering and you have to have the R&D building upgraded once in order to start getting them?

They are a fantastic source of funds and science, some may consider it cheaty, however I am using CTT which adds a lot more nodes and needs a lot more science to unlock, and I am running a scaled up kerbol system so rockets need to be larger and therefore more expensive. Plus I am not a huge fan of the visual survey contracts, while I enjoy occasionally flying planes around if I have to land them somewhere other than the runway that is just a recipe for disaster, they take a decent chunk of time to complete, and I would much rather be launching space station modules and Mun bases than flying planes most of the time. Also once I complete those first initial contracts I prefer to do mostly unmanned launches for the majority of the early game, I do my own little roleplay realism thing and I think it is absolutely ridiculous to launch a single man in a tiny can to the Mun, I don't start doing manned missions until way down the line, unfortunately a large number of the parts I need to send probes and "realistic" manned missions are way down the tech tree, so having the part test contracts to build up funds and science to get to those things works fantastically for my roleplay.

Here is basically what happened and what is now going on.

I had a good career game going, lots of part testing contracts, I had established a RT comms network and sent probes to the Mun, however memory usage was quite high and I was getting a little tired of crashing every hour or so. I had already pruned a number of my mods and some of the stock squad and NASA stuff. So I decided to prune further and remove a majority of the stock squad lifter and upper stage engines, I pretty much never used them since I have KW installed and use those instead.

At the same time that I removed the squad engines I also updated MKS/OKS to 0.22.8 from 0.22.6 and MCM from 0.4.4 to 0.4.5 I also updated this to 0.6.6 around the same time, although I think I did it before hand. These are the only significant changes I made to my game that I can remember at the moment, and this is when everything went to hell.

When I reloaded my save after updating the above mods and removing the stock parts all of the buildings at the space center were max level, also I had no active contracts, I went and took a quick look into my save file to see if there was anything obvious, first thing I saw was that in the save file it stilled showed the appropriate upgrade level for all the buildings, but no matter how many times I loaded my save they all showed up as fully upgraded. I declared that save to be dead, deleted it and went ahead and started a new game, I assumed one of the parts I had removed was needed for an active contract and my removing it corrupted my save.

However in the new save I wasn't getting any parts request contracts at all. I decided maybe something in my install got corrupt, so I reinstalled KSP and then moved the majority of my mod folders over from my old game. I didn't move anything that to my knowledge involved the contract system, like this mod, contracts window+ etc. those I did a fresh install of.

Yet in this new game I am still not receiving any part test contracts :( other seemingly weird things that are happening:

I keep getting launch a new vessel contracts, Iv'e completed that one like 8 times now just cuz.

I only get like the same 5-6 contracts offered. Two one star perform visual surveys contracts, a one or two star position a satellite contract, a two star rescue from kerbin orbit mission, and the three star explore the Mun contract. no matter how many times I hit the decline button, the contract doesn't go away just changes agencies.

When I try and force create a part test contract in the alt-F12 menu it shows: [Error]: Contract of type 'PartTest' was not be generated in the alt-F2 log window

Now it does this for pretty much all of the other contracts as well, except rescue a kerbal, this it will let me add two and then will show the same error, and the First Launch contract, this it will let me add seemingly infinite launch a new vessel contracts.

please any help and trouble shooting tips are greatly appreciated

Won't have time to look at this for a couple hours, but if you post a log file in the meantime it would help greatly.

EDIT: I can't remember offhand when part test contracts are supposed to show up - I think it was after getting a manned orbit. Typically the "was not to be generated" error just means that the contract didn't meet the requirements. I bring that up since you mention preferring not to do manned missions - if you haven't gotten a Kerbal into orbit yet, give that a shot.

Edited by nightingale
Link to comment
Share on other sites

Won't have time to look at this for a couple hours, but if you post a log file in the meantime it would help greatly.

EDIT: I can't remember offhand when part test contracts are supposed to show up - I think it was after getting a manned orbit. Typically the "was not to be generated" error just means that the contract didn't meet the requirements. I bring that up since you mention preferring not to do manned missions - if you haven't gotten a Kerbal into orbit yet, give that a shot.

Definitely gotten a kerbal to orbit, not sure if this is even in relation to your mod, although one of the things that I did before this happened was update CC. Is there someplace where I can find out what the prerequisites for part test contracts are so I can make sure I have completed them? Also the other interesting thing is it continually gives me the first launch contract, like I said I have completed that one many times now.

As far as a log what would you like to see done in the session for the log?

Link to comment
Share on other sites

Akira_R said:
Help!! I have been trying to figure out what is going on with my game for weeks now and I am rapidly going bald as I pull my hair out trying to fathom what is going on!

Basically in a new save the part test contracts aren't showing up, so I guess the first question would be what are the requirements for these contracts to start showing up? Am I a dunce and miss remembering and you have to have the R&D building upgraded once in order to start getting them?

This happens all the time in my saves and has nothing to do with Contract Configurator. It's a stock KSP thing where KSP seems to get sullen about part contracts if you have parts mods installed. Sometimes I get test contracts, sometimes I get stuck with "launch a new vehicle" contracts on repeat, sometimes I get nothing.

As for the funding side:

- Install [Moderator removed defunct website link]

- Try GovFund and give yourself 3000/day in funding

- Kerbaonomics might be an alternative funding source in another few weeks

Edited by James Kerman
link removed
Link to comment
Share on other sites

Definitely gotten a kerbal to orbit, not sure if this is even in relation to your mod, although one of the things that I did before this happened was update CC. Is there someplace where I can find out what the prerequisites for part test contracts are so I can make sure I have completed them? Also the other interesting thing is it continually gives me the first launch contract, like I said I have completed that one many times now.

As far as a log what would you like to see done in the session for the log?

For Contract Configurator specific stuff, I'd mostly want to see up to the main menu - but going into a game and then trying to generate the contracts you want via the debug menu would be helpful.

That being said, what you've described (as WuphonsReach pointed out) is basically what happens when any contract cause the contract system to fail. This is such an obnoxious problem that in Contract Configurator I've trapped those error and spit them out in a dialog box (so they can't be missed). Anyway, what happens when there's an exception on load is that the contract system stops loading other contracts - which means stuff like the "reach space" contract gets repeated, because KSP has "forgotten" that you already did it.

So what's likely happening is a contract is failing to load. It could be a stock contract (part test missing a part it wants to test seems likely) or a modded one. Hopefully a Contract Configurator one is unlikely due to the error message that is supposed to pop up for it.

Link to comment
Share on other sites

A question about contract behavior when deploying a lander/etc :

The contract pack I've been working on for a while is ALMOST done. I just have one last thing I'd like to clean up.

During original testing (several versions of CC ago) I ran into problems trying to make a mission to do a "first manned landing on another planet, any planet" mission where it would count the lander, and the mothership, as not the same "vessal" for purposes of completing the contract. For example:

PARAMETER

{

name = VesselParameterGroup9001

type = VesselParameterGroup

define = Minmus Lander

PARAMETER

{

name = HasCrew9

type = HasCrew

trait = Pilot

minCrew = 1

}

PARAMETER

{

name = ReachSituation9

type = ReachSituation

situation = LANDED

}

PARAMETER

{

name = ReachDestination9

type = ReachDestination

targetBody = Minmus

}

}

PARAMETER

{

name = VesselParameterGroup9002

type = VesselParameterGroup

vessel = Minmus Lander

PARAMETER

{

name = ReturnHome9

type = ReturnHome

}

}

}

That sort of thing (don't worry about the exact syntax, it's a dirty CP from an old version) didn't work especially well, as the lander would complete the "reach situation landed" but without physically docking with the mothership (I usually just fly close and do an EVA) and landing a big mess of a ship, the "return home" wouldn't trigger.

I've been looking for a better way to do this. For now, I'm just using a generic "plant flag" but I'd like to find a way to do "plant flag, and return home" in some way that maybe is centric to the Kerbal who plants the flag? Or in some other way allows an orbiter/lander Target-Orbit-Rendezvous mission profile. Any suggestions? (I'd also apply this to the "first mun landing" contract too, which for now is also just a flag plant)

CONTRACT_TYPE

{

name = FirstPlanetLanding

title = Send the first manned mission to land on another planet.

description = We're ready. It's time to land on another planet. We want you to send a Kerbal to land on the

surface of one of the other planets, and return safely back to Kerbin. This is the big one - let's make history!

notes = Complete the following:

synopsis = Launch a manned flyby mission to land on another planet. It doesn't matter which one.

completedMessage = You did it! We've launched the very first manned mission to land on another planet!

agent = Kerbin World-Firsts Record-Keeping Society

//deadline = 100

// NOTE deadline value is in kerbin days

cancellable = false

declinable = false

prestige = Significant

// Trivial

// Significant

// Exceptional

maxCompletions = 1

maxSimultaneous = 1

rewardScience = 250.0

rewardReputation = 100.0

rewardFunds = 500000.0

advanceFunds = 100000.0

weight = 99.0

PARAMETER

{

name = Any13001

type = Any

PARAMETER

{

name = PlantFlag13001

type = PlantFlag

targetBody = Moho

}

PARAMETER

{

name = PlantFlag13002

type = PlantFlag

targetBody = Eve

}

PARAMETER

{

name = PlantFlag13003

type = PlantFlag

targetBody = Duna

}

PARAMETER

{

name = PlantFlag13004

type = PlantFlag

targetBody = Dres

}

PARAMETER

{

name = PlantFlag13005

type = PlantFlag

targetBody = Eeloo

}

}

}

Link to comment
Share on other sites

A question about contract behavior when deploying a lander/etc :

The contract pack I've been working on for a while is ALMOST done. I just have one last thing I'd like to clean up.

During original testing (several versions of CC ago) I ran into problems trying to make a mission to do a "first manned landing on another planet, any planet" mission where it would count the lander, and the mothership, as not the same "vessal" for purposes of completing the contract. For example:

PARAMETER

{

name = VesselParameterGroup9001

type = VesselParameterGroup

define = Minmus Lander

PARAMETER

{

name = HasCrew9

type = HasCrew

trait = Pilot

minCrew = 1

}

PARAMETER

{

name = ReachSituation9

type = ReachSituation

situation = LANDED

}

PARAMETER

{

name = ReachDestination9

type = ReachDestination

targetBody = Minmus

}

}

PARAMETER

{

name = VesselParameterGroup9002

type = VesselParameterGroup

vessel = Minmus Lander

PARAMETER

{

name = ReturnHome9

type = ReturnHome

}

}

}

That sort of thing (don't worry about the exact syntax, it's a dirty CP from an old version) didn't work especially well, as the lander would complete the "reach situation landed" but without physically docking with the mothership (I usually just fly close and do an EVA) and landing a big mess of a ship, the "return home" wouldn't trigger.

I've been looking for a better way to do this. For now, I'm just using a generic "plant flag" but I'd like to find a way to do "plant flag, and return home" in some way that maybe is centric to the Kerbal who plants the flag? Or in some other way allows an orbiter/lander Target-Orbit-Rendezvous mission profile. Any suggestions? (I'd also apply this to the "first mun landing" contract too, which for now is also just a flag plant)

CONTRACT_TYPE

{

name = FirstPlanetLanding

title = Send the first manned mission to land on another planet.

description = We're ready. It's time to land on another planet. We want you to send a Kerbal to land on the

surface of one of the other planets, and return safely back to Kerbin. This is the big one - let's make history!

notes = Complete the following:

synopsis = Launch a manned flyby mission to land on another planet. It doesn't matter which one.

completedMessage = You did it! We've launched the very first manned mission to land on another planet!

agent = Kerbin World-Firsts Record-Keeping Society

//deadline = 100

// NOTE deadline value is in kerbin days

cancellable = false

declinable = false

prestige = Significant

// Trivial

// Significant

// Exceptional

maxCompletions = 1

maxSimultaneous = 1

rewardScience = 250.0

rewardReputation = 100.0

rewardFunds = 500000.0

advanceFunds = 100000.0

weight = 99.0

PARAMETER

{

name = Any13001

type = Any

PARAMETER

{

name = PlantFlag13001

type = PlantFlag

targetBody = Moho

}

PARAMETER

{

name = PlantFlag13002

type = PlantFlag

targetBody = Eve

}

PARAMETER

{

name = PlantFlag13003

type = PlantFlag

targetBody = Duna

}

PARAMETER

{

name = PlantFlag13004

type = PlantFlag

targetBody = Dres

}

PARAMETER

{

name = PlantFlag13005

type = PlantFlag

targetBody = Eeloo

}

}

}

For the first attempt, note that if you had redocked, it would've "transferred" the landed status to the mothership, so that if you undocked a small part of it and landed that, then you should've still met the parameters. One option would be that I can do this same logic that I apply to docking to Kerbal EVAs - that way the lander will land, the Kerbal will transfer that "landedness" to the mothership via EVA, and then you can meet the return home parameter with it.

For your second idea, I would need to implement some sort of kerbal-tracking (sort of like I have for the vessel tracking). It's been on the roadmap, but wasn't planning on looking at it any sooner than 0.8.0.

So for option one, I can probably bang that out for you in the next couple days and release as 0.6.7. Or if you want the Kerbal tracking, I can probably work it into 0.7.0 - but that'll probably be in the neighbourhood of two weeks.

Otherwise I don't see an easy way to get what you want done (without accepting the current limitations of method one).

Link to comment
Share on other sites

For the first attempt, note that if you had redocked, it would've "transferred" the landed status to the mothership, so that if you undocked a small part of it and landed that, then you should've still met the parameters. One option would be that I can do this same logic that I apply to docking to Kerbal EVAs - that way the lander will land, the Kerbal will transfer that "landedness" to the mothership via EVA, and then you can meet the return home parameter with it.

For your second idea, I would need to implement some sort of kerbal-tracking (sort of like I have for the vessel tracking). It's been on the roadmap, but wasn't planning on looking at it any sooner than 0.8.0.

So for option one, I can probably bang that out for you in the next couple days and release as 0.6.7. Or if you want the Kerbal tracking, I can probably work it into 0.7.0 - but that'll probably be in the neighbourhood of two weeks.

Otherwise I don't see an easy way to get what you want done (without accepting the current limitations of method one).

Interesting. I'll do some more experimenting with docking and see if I can sculpt the contracts differently or whatnot.

Assuming everything is functioning right, and I didn't screw up the contract definition, should docking essentially spread "landedness" (or whatever) to BOTH craft and have it retained on both if they undock?

I think that the transfer of "landedness" via kerbal EVA would be a good option, as it would probably also allow more flexibility with stations or land-on-multiple-planet/moon type missions - however it might be easier to abuse/cheat.

Quasi related : the contract pack I've got prepared introduces a pretty long-sighted alternate/compliment progression chain that gives a little more depth than the generic "explore Mun" "explore Duna" chain. Once done, I'll post it here.

Edited by tjsnh
Link to comment
Share on other sites

Interesting. I'll do some more experimenting with docking and see if I can sculpt the contracts differently or whatnot.

Assuming everything is functioning right, and I didn't screw up the contract definition, should docking essentially spread "landedness" (or whatever) to BOTH craft and have it retained on both if they undock?

I think that the transfer of "landedness" via kerbal EVA would be a good option, as it would probably also allow more flexibility with stations or land-on-multiple-planet/moon type missions - however it might be easier to abuse/cheat.

It's undocumented (I'll have to fix that soon), but it's meant to cover the exact scenario you're trying to accomplish. When a ship that has completed a vessel parameter docks with another ship, the new ship will get the state of that parameter "transferred" to it. It will then be flagged as "weakly" meeting the parameter. The only difference being that a ship that weakly meets the parameter will not be able to transfer that parameter state on to a third ship.

Scenario 1 is the one you described, although I'll make it slightly more complicated. The mission is to land on the Mun and come home, and the player has built a vessel that consists of a return capsule, mothership and lander. The lander lands on the Mun and completes the various "Mun" parameters. It then returns and docks to the mothership - the main part of the mothership and the return capsule now weakly meet the parameter(s). The player then undocks the return capsule and goes back home (the capsule still meets the parameters). It can then be recovered for mission success.

Scenario 2: A ship that meets a parameter docks with a refuelling station. The refuelling station now also weakly meets that parameter. The original ship leaves. A third ship docks to the refuelling station. This ship does NOT meet the parameter - as the docking station only weakly met, and does not transfer the state.

So scenario 2 shows how it's somewhat difficult to exploit this behaviour. Not impossible - but more difficult than just doing the contract the way it was meant to be done. Also note that these are for meeting contract parameters - if the contract is met, and a new similar contract comes about, these are considered new parameters (so you couldn't just park a thing that landed on the Mun in Kerbin orbit and somehow use it to "farm" Mun landing contracts or something like that).

Anyway, for the EVA it'll work the same - a Kerbal leaving the ship that meets the parameter will strongly meet the parameter, and when entering another ship that new ship will weakly meet the parameter. If the Kerbal leaves again, he will not meet the parameter - as I do not plan on "persisting" anything about the EVA kerbal.

Quasi related : the contract pack I've got prepared introduces a pretty long-sighted alternate/compliment progression chain that gives a little more depth than the generic "explore Mun" "explore Duna" chain. Once done, I'll post it here.

Very cool, can't wait to see it.

Link to comment
Share on other sites

This happens all the time in my saves and has nothing to do with Contract Configurator. It's a stock KSP thing where KSP seems to get sullen about part contracts if you have parts mods installed. Sometimes I get test contracts, sometimes I get stuck with "launch a new vehicle" contracts on repeat, sometimes I get nothing.

As for the funding side:

- Install https://kerbalstuff.com/mod/423/ImprovedStrategies

- Try GovFund and give yourself 3000/day in funding

- Kerbaonomics might be an alternative funding source in another few weeks

Interesting, honestly I highly doubted the issue really had anything to do with CC, since I was getting zero help on the thread I posted in the support forum I figured i may as well ask here were people actually understand the contracts system.

For Contract Configurator specific stuff, I'd mostly want to see up to the main menu - but going into a game and then trying to generate the contracts you want via the debug menu would be helpful.

That being said, what you've described (as WuphonsReach pointed out) is basically what happens when any contract cause the contract system to fail. This is such an obnoxious problem that in Contract Configurator I've trapped those error and spit them out in a dialog box (so they can't be missed). Anyway, what happens when there's an exception on load is that the contract system stops loading other contracts - which means stuff like the "reach space" contract gets repeated, because KSP has "forgotten" that you already did it.

So what's likely happening is a contract is failing to load. It could be a stock contract (part test missing a part it wants to test seems likely) or a modded one. Hopefully a Contract Configurator one is unlikely due to the error message that is supposed to pop up for it.

Hmm is there any way to find out what exactly isn't loading up properly? On the CC side the only contract packs I am using are the RT and SCANsat ones. I have actually received the first RT contract.

As far as a part test contract missing a part is that possible? I figured they were essentially procedurally generated by just picking parts with the ModueTestSubject module and then generating a situation based off the environmental parameters, so removing parts would just mean that those parts obviously don't get added to the list.

I did add the following MM script to my game in order to add the part test module to all of the KW engines since I was removing all the stock ones.

@PART[KW*]:HAS[@MODULE[ModuleEnginesFX]]

{

MODULE

{

name = ModuleTestSubject

// nowhere: 0, srf: 1, ocean: 2, atmo: 4, space: 8

environments = 15

useStaging = True

useEvent = True

}

}

@PART[KW*]:HAS[@MODULE[ModuleEngines]]

{

MODULE

{

name = ModuleTestSubject

// nowhere: 0, srf: 1, ocean: 2, atmo: 4, space: 8

environments = 15

useStaging = True

useEvent = True

}

}

I may try removing that and see if it has any effect. Will have to wait until tomorrow though. Any help on this matter is greatly appreciated!!

Link to comment
Share on other sites

Interesting, honestly I highly doubted the issue really had anything to do with CC, since I was getting zero help on the thread I posted in the support forum I figured i may as well ask here were people actually understand the contracts system.

Hmm is there any way to find out what exactly isn't loading up properly? On the CC side the only contract packs I am using are the RT and SCANsat ones. I have actually received the first RT contract.

As far as a part test contract missing a part is that possible? I figured they were essentially procedurally generated by just picking parts with the ModueTestSubject module and then generating a situation based off the environmental parameters, so removing parts would just mean that those parts obviously don't get added to the list.

I did add the following MM script to my game in order to add the part test module to all of the KW engines since I was removing all the stock ones.

@PART[KW*]:HAS[@MODULE[ModuleEnginesFX]]

{

MODULE

{

name = ModuleTestSubject

// nowhere: 0, srf: 1, ocean: 2, atmo: 4, space: 8

environments = 15

useStaging = True

useEvent = True

}

}

@PART[KW*]:HAS[@MODULE[ModuleEngines]]

{

MODULE

{

name = ModuleTestSubject

// nowhere: 0, srf: 1, ocean: 2, atmo: 4, space: 8

environments = 15

useStaging = True

useEvent = True

}

}

I may try removing that and see if it has any effect. Will have to wait until tomorrow though. Any help on this matter is greatly appreciated!!

Yes, missing a part would explain on an existing save - but for an entirely new game it really shouldn't be an issue. Anyway, not much more I can say without a log... still just guesswork!

Link to comment
Share on other sites

It's undocumented (I'll have to fix that soon), but ....... leaves again, he will not meet the parameter - as I do not plan on "persisting" anything about the EVA kerbal.

Excellent explanation! The concept of the strong/weak parameter satisfaction is perfect.

I'll have to find a concise way to explain/disclaim what to do in the "notes" for the contract(s). "If you use a lander, make sure it docks with the return ship to claim credit for the landing!" or something like that.

I ran some tests last night and it seems to be working as you explained, after some contract tweaking.

Link to comment
Share on other sites

Ok, update : reachstate situation=landed seems to "transfer" after docking (contract panel has it checked off) but after doing so, ReturnHome doesn't trigger after landing. Test mission was a basic apollo/lem style trip to minmus. LEM lander pod docked with returncapsule after landing, then undocked and discarded (still in orbit of minmus) before the return trip to kerbin.

////////////////////////////

CONTRACT_TYPE

{

name = TESTMINMUSLANDING

title = TESTMINMUSLANDING

description = TESTMINMUSLANDING

notes = Complete the following:

synopsis = TESTMINMUSLANDING

completedMessage = TESTMINMUSLANDING

agent = Kerbin World-Firsts Record-Keeping Society

cancellable = false

declinable = false

prestige = Trivial

targetBody = Minmus

maxCompletions = 1

maxSimultaneous = 1

rewardScience = 100.0

rewardReputation = 20.0

rewardFunds = 100000.0

advanceFunds = 10000.0

weight = 99.0

PARAMETER

{

name = Sequence992001

type = Sequence

title = Land on minmus and come back home

PARAMETER

{

name = VesselParameterGroup992001

type = VesselParameterGroup

define = Lander

PARAMETER

{

name = HasCrew992001

type = HasCrew

trait = Pilot

minCrew = 1

}

PARAMETER

{

name = ReachState992001

type = ReachState

vessel = Lander

targetBody = Minmus

situation = LANDED

}

}

PARAMETER

{

name = VesselParameterGroup992002

type = VesselParameterGroup

vessel = Lander

PARAMETER

{

name = ReturnHome992001

type = ReturnHome

}

}

}

}

////////////////////////////

[LOG 07:41:42.737] [Tantares.Parachute.A]: Activated

[LOG 07:41:43.391] [Progress Node Reached]: ReturnFromOrbit

[LOG 07:41:43.392] [Progress Node Complete]: ReturnFromOrbit

[LOG 07:41:43.393] FF: vessel situation change for Tantares.Crew.A (TestMinmusMission), situation changed from FLYING to SPLASHED

[LOG 07:41:43.393] FF: situation change for active vessel

[LOG 07:41:43.401] [02:59:16]: RP-1 Inline Return Parachute splashed down hard and was destroyed.

[LOG 07:41:43.401] [Tantares.Parachute.A]: Deactivated

[LOG 07:41:44.205] FF: vessel situation change for Tantares.Crew.A (TestMinmusMission), situation changed from SPLASHED to FLYING

[LOG 07:41:44.206] FF: situation change for active vessel

[LOG 07:41:45.322] FF: vessel situation change for Tantares.Crew.A (TestMinmusMission), situation changed from FLYING to SPLASHED

[LOG 07:41:45.322] FF: situation change for active vessel

[LOG 07:42:14.510] Flight State Captured

Note the log entries

[LOG 07:41:43.391] [Progress Node Reached]: ReturnFromOrbit
[LOG 07:41:43.392] [Progress Node Complete]: ReturnFromOrbit

Not sure whats up. Should I not be using a SEQUENCE to accomplish this?

Edited by tjsnh
Link to comment
Share on other sites

<snip>

Not sure whats up. Should I not be using a SEQUENCE to accomplish this?

Oooh, I think I suspect what's happening. You are defining the lander as the vessel that must return home. So even though the other parameters transfer, the definition of the craft that is the lander does not. If you remove the sequence and put everything under the same VesselParameterGroup, it should work.

Note that doing that opens the exploit of "returning home" first. You can get around that by putting the Return Home under a SequenceNode, but I was actually just about to improve that in 0.7.0 and change it to an attribute (SequenceNode will stick around for another version or two before being removed).

What I'll do is make that change and the EVA thing we discussed under 0.6.7 and release today or tomorrow. After the change, your new ReturnHome parameter will need to look something like this:

[COLOR=#333333]PARAMETER[/COLOR]
[COLOR=#333333]{[/COLOR]
[COLOR=#333333] name = ReturnHome992001[/COLOR]
[COLOR=#333333] type = ReturnHome
[/COLOR] completeInSequence = true
[COLOR=#333333]}[/COLOR]

Link to comment
Share on other sites

Oooh, I think I suspect what's happening. You are defining the lander as the vessel that must return home. So even though the other parameters transfer, the definition of the craft that is the lander does not. If you remove the sequence and put everything under the same VesselParameterGroup, it should work.

Note that doing that opens the exploit of "returning home" first. You can get around that by putting the Return Home under a SequenceNode, but I was actually just about to improve that in 0.7.0 and change it to an attribute (SequenceNode will stick around for another version or two before being removed).

What I'll do is make that change and the EVA thing we discussed under 0.6.7 and release today or tomorrow. After the change, your new ReturnHome parameter will need to look something like this:

[COLOR=#333333]PARAMETER[/COLOR]
[COLOR=#333333]{[/COLOR]
[COLOR=#333333] name = ReturnHome992001[/COLOR]
[COLOR=#333333] type = ReturnHome
[/COLOR] completeInSequence = true
[COLOR=#333333]}[/COLOR]

Ok, I'll wait for the update and take another crack at it. No rush, and thank you for your amazing work.

With trial & error I've been able to get all my other contracts to work how I want, the "land and then return alive" is the ONLY mission profile still giving me issues - and only because I'm trying to "idiot-proof" it incase the player gets creative with their mission. :-)

Part of the challenge has been trying to craft it so that you can't send a manned ship, which detaches a PROBE to land. I'm thinking that in the next iteration of this mission profile I'm going to have the "plant flag" be the surface objective rather than reachsituation=landed , since it basically assures a kerbal MUST be present to perform the flag drop.

Edited by tjsnh
Link to comment
Share on other sites

Ok, I'll wait for the update and take another crack at it. No rush, and thank you for your amazing work.

With trial & error I've been able to get all my other contracts to work how I want, the "land and then return alive" is the ONLY mission profile still giving me issues - and only because I'm trying to "idiot-proof" it incase the player gets creative with their mission. :-)

Part of the challenge has been trying to craft it so that you can't send a manned ship, which detaches a PROBE to land. I'm thinking that in the next iteration of this mission profile I'm going to have the "plant flag" be the surface objective rather than reachsituation=landed , since it basically assures a kerbal MUST be present to perform the flag drop.

Oh yeah, that's a good one - didn't notice that exploit was available.

EDIT: Yay, post #500!

Link to comment
Share on other sites

Yes, missing a part would explain on an existing save - but for an entirely new game it really shouldn't be an issue. Anyway, not much more I can say without a log... still just guesswork!

That's what I thought, there is a log file linked on the support thread I posted if you want to take a look at that. I still haven't had a chance to test with out the MM cfg for the KW engines, should get around to that this evening.

Link to comment
Share on other sites

That's what I thought, there is a log file linked on the support thread I posted if you want to take a look at that. I still haven't had a chance to test with out the MM cfg for the KW engines, should get around to that this evening.

Wow, no wonder you didn't get any answers... there's some odd stuff going on in that log. Did you remove KSP AVC textures in an attempt to save memory?

Going from the top, and most of these are likely red herrings:

PlanetShine error, probably nothing:

NullReferenceException: Object reference not set to an instance of an object  at FlightGlobals.get_Bodies () [0x00000] in <filename unknown>:0 
at PlanetShine.ConfigManager.LoadSettings () [0x00000] in <filename unknown>:0
at PlanetShine.ConfigManager.Start () [0x00000] in <filename unknown>:0

Ton of messed up KSP-AVC errors (I'd reinstall it, if you intentionally deleted the textures, I doubt you're saving much anyway):

KSP-AVC -> System.IO.IsolatedStorage.IsolatedStorageException: Could not find file "C:\Users\Dylan\Desktop\KSP.90 - K2\KSP_win\GameData\KSP-AVC\Textures\DropDownHover.png".  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0 
at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0
at System.IO.File.OpenRead (System.String path) [0x00000] in <filename unknown>:0
at System.IO.File.ReadAllBytes (System.String path) [0x00000] in <filename unknown>:0
at KSP_AVC.DropDownList.GetTexture (System.String file, Int32 width, Int32 height) [0x00000] in <filename unknown>:0

USI Exploration Pack seems mucked up:

Load(Model): UmbraSpaceIndustries/ExpPack/AES/Spaces/AES_Internal

File error:
Failed to read past end of stream.
at System.IO.BinaryReader.ReadByte () [0x00000] in <filename unknown>:0
at System.IO.BinaryReader.Read7BitEncodedInt () [0x00000] in <filename unknown>:0
at System.IO.BinaryReader.ReadString () [0x00000] in <filename unknown>:0
at A. .ReadTextures (System.IO.BinaryReader br, UnityEngine.GameObject o) [0x00000] in <filename unknown>:0
at A. .ReadChild (System.IO.BinaryReader br, UnityEngine.Transform parent) [0x00000] in <filename unknown>:0
at A. . (.UrlFile ) [0x00000] in <filename unknown>:0

Model load error in 'C:\Users\Dylan\Desktop\KSP.90 - K2\KSP_win\GameData\UmbraSpaceIndustries\ExpPack\AES\Spaces\AES_Internal.mu'

More KSP-AVC odd stuff:

KSP-AVC -> System.InvalidCastException: Cannot cast from source type to destination type.
at UnityEngine.GUILayout.BeginScrollView (Vector2 scrollPosition, Boolean alwaysShowHorizontal, Boolean alwaysShowVertical, UnityEngine.GUIStyle horizontalScrollbar, UnityEngine.GUIStyle verticalScrollbar, UnityEngine.GUIStyle background, UnityEngine.GUILayoutOption[] options) [0x00000] in <filename unknown>:0
at UnityEngine.GUILayout.BeginScrollView (Vector2 scrollPosition, UnityEngine.GUILayoutOption[] options) [0x00000] in <filename unknown>:0
at KSP_AVC.Toolbar.ToolbarWindow.DrawAddonBoxStart () [0x00000] in <filename unknown>:0
at KSP_AVC.Toolbar.ToolbarWindow.DrawAddonList () [0x00000] in <filename unknown>:0
at KSP_AVC.Toolbar.ToolbarWindow.Window (Int32 windowId) [0x00000] in <filename unknown>:0

Some KSPI errors:

[KSP Interstellar] Exception caught adding to: FNSmallerAugmentedArcjet part: System.InvalidOperationException: Operation is not valid due to the current state of the object
at System.Linq.Enumerable.First[ModuleInfo] (IEnumerable`1 source) [0x00000] in <filename unknown>:0
at FNPlugin.PluginHelper.Update () [0x00000] in <filename unknown>:0

Some TAC-LS errors...

Tac.AddLifeSupport[57F51680][325.66]: The expected exception is still happening when adding the Life Support part module to the EVA: Object reference not set to an instance of an object
at Part.AddModule (System.String moduleName) [0x00000] in <filename unknown>:0
at Part.AddModule (.ConfigNode node) [0x00000] in <filename unknown>:0
at Tac.AddLifeSupport.EvaAddPartModule (.Part part) [0x00000] in <filename unknown>:0

Some odd RealChute failure, again, my guess is this isn't the problem:

NullReferenceException
at (wrapper managed-to-native) UnityEngine.MeshFilter:set_sharedMesh (UnityEngine.Mesh)
at SpriteMesh.CreateMesh () [0x00000] in <filename unknown>:0
at SpriteMesh.get_mesh () [0x00000] in <filename unknown>:0
at SpriteRoot.Delete () [0x00000] in <filename unknown>:0
at SpriteBase.Delete () [0x00000] in <filename unknown>:0
at UIListItemContainer.Delete () [0x00000] in <filename unknown>:0
at UIScrollList.RemoveItem (Int32 index, Boolean destroy, Boolean doEasing) [0x00000] in <filename unknown>:0
at UIScrollList.RemoveItem (IUIListObject item, Boolean destroy, Boolean doEasing) [0x00000] in <filename unknown>:0
at UIScrollList.RemoveItem (IUIListObject item, Boolean destroy) [0x00000] in <filename unknown>:0
at ApplicationLauncher.RemoveModApplication (.ApplicationLauncherButton button) [0x00000] in <filename unknown>:0
at RealChute.SettingsWindow.OnDestroy () [0x00000] in <filename unknown>:0

Nothing here that is an obvious smoking gun, but the two that are happening during the actual game (the rest are while loading or exiting) are the KSPI one and the TAC-LS ones. Try removing each of those mods in turn to see if it fixes your issue. I'd also reinstall KSP-AVC and USI-Exploration, just in case.

Link to comment
Share on other sites

The majority of those I believe are due to DDS conversion of textures, some plugins have the texture format written into the code and will throw errors, in some cases the texture wont load at all, in other cases it will just throw the error but still load the texture and work fine in game, since I wasn't running into any issues actually in game I had been ignoring them. I may role some of those textures back to their original formats.

I had missed the KSP-I one, it looks like that error is due to something internal to the KSP-I plugin, most likely something introduced by the KSPI-NF conversion pack, it comes with a new Interstellar dll and changes a bunch of that stuff.

I'll try re installing TAC-LS, I know it is supposed to add the ModuleTestSubject module to all command pods with life support so they can be used for part test contracts, so there may be something happening there.

Can the contract system get overloaded with to many parts having the part test module on them?

Link to comment
Share on other sites

The majority of those I believe are due to DDS conversion of textures, some plugins have the texture format written into the code and will throw errors, in some cases the texture wont load at all, in other cases it will just throw the error but still load the texture and work fine in game, since I wasn't running into any issues actually in game I had been ignoring them. I may role some of those textures back to their original formats.

With the latest version of active texture management you don't need to do your own DDS conversion - it does it for you.

Can the contract system get overloaded with to many parts having the part test module on them?

That sounds unlikely. Performance may suffer, but I doubt there's an upper limit.

Link to comment
Share on other sites

Contract Configurator 0.6.7 is out. Download it now!

Changes:

  • Added support for completeInSequence attribute (all parameters).
  • The state of vessel parameters may now be "transferred" via EVA Kerbals. This allows a ship to land on the Mun, have the Kerbal EVA from the ship to a new ship, and have the new ship still complete the "land on Mun" parameter.
  • Minor bug fixes.

Link to comment
Share on other sites

So with the new revision, and the completeinsequence flag, does this syntax construction look correct?

////////////////////////////

CONTRACT_TYPE

{

name = TESTMINMUSLANDING2

title = TESTMINMUSLANDING2

description = TESTMINMUSLANDING2

notes = Complete the following:

synopsis = TESTMINMUSLANDING2

completedMessage = TESTMINMUSLANDING2

agent = Kerbin World-Firsts Record-Keeping Society

cancellable = false

declinable = false

prestige = Trivial

targetBody = Minmus

maxCompletions = 1

maxSimultaneous = 1

rewardScience = 100.0

rewardReputation = 20.0

rewardFunds = 100000.0

advanceFunds = 10000.0

weight = 99.0

PARAMETER

{

name = VesselParameterGroup992001

type = VesselParameterGroup

define = Lander

title = Mission Requirements

PARAMETER

{

name = VesselParameterGroup992002

type = VesselParameterGroup

PARAMETER

{

name = HasCrew992001

type = HasCrew

define = Lander

trait = Pilot

minCrew = 1

}

PARAMETER

{

name = PlantFlag

type = PlantFlag

targetBody = Minmus

}

}

PARAMETER

{

name = VesselParameterGroup992002

type = VesselParameterGroup

vessel = Lander

PARAMETER

{

name = ReturnHome992001

type = ReturnHome

completeInSequence = true

}

}

}

}

////////////////////////////

Edit : Doesn't seem to work, same issue I was having before with the landing failing to complete the contract. More tinkering to do.

Edit2 : removing vessal = lander in the returnhome parameter (from the example in the spoiler) SEEMS to have done the trick, but more testing is needed to see if it's abuse-able.

Edit 3 : Ok - found an issue. Current behavior with contract in spoiler (minus the vessal = lander) is thus :

Launch Pod A, park in kerbin orbit

Launch Pod B, go plant flag on minmus

Land pod A back on Kerbin

Mission completion credit triggers.

Suggestions?

Edited by tjsnh
Link to comment
Share on other sites

So with the new revision, and the completeinsequence flag, does this syntax construction look correct?

////////////////////////////

CONTRACT_TYPE

{

name = TESTMINMUSLANDING2

title = TESTMINMUSLANDING2

description = TESTMINMUSLANDING2

notes = Complete the following:

synopsis = TESTMINMUSLANDING2

completedMessage = TESTMINMUSLANDING2

agent = Kerbin World-Firsts Record-Keeping Society

cancellable = false

declinable = false

prestige = Trivial

targetBody = Minmus

maxCompletions = 1

maxSimultaneous = 1

rewardScience = 100.0

rewardReputation = 20.0

rewardFunds = 100000.0

advanceFunds = 10000.0

weight = 99.0

PARAMETER

{

name = VesselParameterGroup992001

type = VesselParameterGroup

define = Lander

title = Mission Requirements

PARAMETER

{

name = VesselParameterGroup992002

type = VesselParameterGroup

PARAMETER

{

name = HasCrew992001

type = HasCrew

define = Lander

trait = Pilot

minCrew = 1

}

PARAMETER

{

name = PlantFlag

type = PlantFlag

targetBody = Minmus

}

}

PARAMETER

{

name = VesselParameterGroup992002

type = VesselParameterGroup

vessel = Lander

PARAMETER

{

name = ReturnHome992001

type = ReturnHome

completeInSequence = true

}

}

}

}

////////////////////////////

Edit : Doesn't seem to work, same issue I was having before with the landing failing to complete the contract. More tinkering to do.

Edit2 : removing vessal = lander in the returnhome parameter (from the example in the spoiler) SEEMS to have done the trick, but more testing is needed to see if it's abuse-able.

Edit 3 : Ok - found an issue. Current behavior with contract in spoiler (minus the vessal = lander) is thus :

Launch Pod A, park in kerbin orbit

Launch Pod B, go plant flag on minmus

Land pod A back on Kerbin

Mission completion credit triggers.

Suggestions?

Yup, that makes sense - it's the stock plant flag parameter. Anything that isn't under the Vessel Parameters heading in the wiki will not be tracked at a vessel level. It will still work in a VesselParameterGroup - it just will only get completed once. Here's how I'd suggest you rework your contract:


////////////////////////////
CONTRACT_TYPE
{
name = TESTMINMUSLANDING2
title = TESTMINMUSLANDING2
description = TESTMINMUSLANDING2
notes = Complete the following:
synopsis = TESTMINMUSLANDING2
completedMessage = TESTMINMUSLANDING2
agent = Kerbin World-Firsts Record-Keeping Society
cancellable = false
declinable = false
prestige = Trivial
targetBody = Minmus
maxCompletions = 1
rewardScience = 100.0
rewardReputation = 20.0
rewardFunds = 100000.0
advanceFunds = 10000.0
weight = 99.0

PARAMETER
{
name = VesselParameterGroup992002
type = VesselParameterGroup

PARAMETER
{
name = HasCrew992001
type = HasCrew
trait = Pilot
minCrew = 1
}

PARAMETER
{
name = ReachState992001
type = ReachState
situation = LANDED
completeInSequence = true
}

PARAMETER
{
name = PlantFlag
type = PlantFlag
targetBody = Minmus
}

PARAMETER
{
name = ReturnHome992001
type = ReturnHome
completeInSequence = true
}
}
}
////////////////////////////


And my list of revisions (some were minor):

  1. Removed maxSimultaneous - redundant since you have maxCompletions
  2. Removed the outer VesselParameterGroup - it actually wasn't doing anything, because the parameters underneath it weren't "vessl parameters" (VesslParameterGroup is special - doesn't count). If you had other reasons for grouping it (aesthetics?), then you can get the same thing using an All parameter.
  3. Removed the define off HasCrew (it should've been generating a warning, as it's not an attribute that is used by HasCrew).
  4. Collapsed the two VesselParameterGroup parameters together - it's a better way to force the "return home" to be met by the same vessel that meets the other parameters (when available).
  5. Added a ReachState with a situation of Landed (the Minmus targetBody gets inferred from the contract). It also has the completeInSequence flag set - forces the landing portion of the mission to have the 1 crew.

Technically speaking, it's still possible to have a different vessel/mission do the flag part. However, the one ship/crew must do the landing and have the pilot on the surface of Minmus - so you can remove the flag and still effectively have the same mission. I raised a GitHub issue (#139) to see about getting the PlantFlag to be a vessel parameter - won't be in the 0.6.x branch, and no guarantees for 0.7.0.

Link to comment
Share on other sites

Still having some trouble getting the returnhome to work correctly and ONLY trigger from the return capsule coming back from the moon-in-question. I can get it to trigger, but only if the actual lander returns (DA mission profile works) _OR_ I can get it to trigger BUT you can do the "launch something 20 feet up, and land back on the pad" trick to get credit for that parameter. Frustrating. I may just scrap the "return home alive" part of the mission, in the interest of getting the mission pack "done". I had wanted to force the come-back-alive as a way to discourage one-way suicide missions to Eve or the Joolian moons.

Link to comment
Share on other sites

Still having some trouble getting the returnhome to work correctly and ONLY trigger from the return capsule coming back from the moon-in-question. I can get it to trigger, but only if the actual lander returns (DA mission profile works) _OR_ I can get it to trigger BUT you can do the "launch something 20 feet up, and land back on the pad" trick to get credit for that parameter. Frustrating. I may just scrap the "return home alive" part of the mission, in the interest of getting the mission pack "done". I had wanted to force the come-back-alive as a way to discourage one-way suicide missions to Eve or the Joolian moons.

For returning without the lander can you describe your steps including undocking/docking and EVAs? I'd like to try to reproduce. Also is this using the config I gave you, or with modifications?

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