Jump to content

[1.4.x] Contract Pack: RemoteTech [v2.1.4] [2017-08-27]


nightingale

Recommended Posts

17 minutes ago, Alshain said:

I've never played with this one before.  What does it mean by "Vessel: Not CommSat [x] (TBD)"?

The vessel that can meet that parameter needs to be different than the one marked as "CommSat [x]".  When a vessel gets marked as "CommSat [x]" by another parameter, it'll instead show the real vessel name there (and not have a TBD).

Link to comment
Share on other sites

Just now, nightingale said:

The vessel that can meet that parameter needs to be different than the one marked as "CommSat [x]".  When a vessel gets marked as "CommSat [x]" by another parameter, it'll instead show the real vessel name there (and not have a TBD).

Oh, but they can be launched as one vessel, right?  As long as they separate into individual sats.

Link to comment
Share on other sites

On 7/30/2016 at 5:52 PM, nightingale said:

No problem.  I may need to revise that requirement so that seeing a dish to mun is sufficient.

FYI, I just ran into this problem too.  At a minimum you should add text to the mission control that specifies how it must be targeted IMO.

Link to comment
Share on other sites

11 hours ago, Alshain said:

FYI, I just ran into this problem too.  At a minimum you should add text to the mission control that specifies how it must be targeted IMO.

Hmmm, I rechecked this one, and changing it to a specific range without the 'active vessel' condition is technically a bit difficult.  However, I thought the requirement text is pretty clear:

            string output = "Must " + (invertRequirement ? "not " : "") + "have a RemoteTech constellation orbiting " + (targetBody == null ? "the target body" : targetBody.CleanDisplayName(true)) + " with an active vessel dish (or omni antenna) with a range of at least " + (range / 1000.0).ToString("N0") + " km";

Any suggestions on how you would reword "active vessel dish" to be a bit more clear?

Link to comment
Share on other sites

8 minutes ago, nightingale said:

Hmmm, I rechecked this one, and changing it to a specific range without the 'active vessel' condition is technically a bit difficult.  However, I thought the requirement text is pretty clear:


            string output = "Must " + (invertRequirement ? "not " : "") + "have a RemoteTech constellation orbiting " + (targetBody == null ? "the target body" : targetBody.CleanDisplayName(true)) + " with an active vessel dish (or omni antenna) with a range of at least " + (range / 1000.0).ToString("N0") + " km";

Any suggestions on how you would reword "active vessel dish" to be a bit more clear?

Well the way it is phrased "active vessel dish" sounds like activate the dish, which is an option in RT, especially on the DTS or HG5 where always active in an atmosphere is not an option.  I see it now but it is a little miseleading on first read.  Perhaps this

Quote

string output = "Must " + (invertRequirement ? "not " : "") + "have a RemoteTech constellation orbiting " + (targetBody == null ? "the target body" : targetBody.CleanDisplayName(true)) + " with a dish (or omni antenna) with a range of at least " + (range / 1000.0).ToString("N0") + " km aimed at the Active Vessel.";

 

EDIT:
Actually this would probably be even better

Quote

string output = "Must " + (invertRequirement ? "not " : "") + "have a RemoteTech constellation orbiting " + (targetBody == null ? "the target body" : targetBody.CleanDisplayName(true)) + " with a dish aimed at the active vessel (or omni antenna) with a range of at least " + (range / 1000.0).ToString("N0") + " km.";

 

Edited by Alshain
Link to comment
Share on other sites

6 minutes ago, Alshain said:

Well the way it is phrased "active vessel dish" sounds like activate the dish, which is an option in RT, especially on the DTS or HG5 where always active in an atmosphere is not an option.  I see it now but it is a little miseleading on first read.  Perhaps this

 

Fixed for next Contract Configurator release.

Link to comment
Share on other sites

  • 4 weeks later...

@nightingale The contract "Communication satellite for inner planets"  requires the 88-88 or the KR-14 to unlock the contract.   Please consider including the HG-55. I suspect that was created before the HG-55 was stock and RT supported it.  The HG-55 has enough range for Eve and Moho at all times (barring solar obstruction of course).

 

Also, I'm not sure what it means by "Part of Type Power".  I have everything in power except the PB-NUK and the KR-14 unlocked and it isn't giving it to me.

Edited by Alshain
Link to comment
Share on other sites

The Mun and Minmus network contracts are unavailable for me.  It says I:

 

"must have a RemoteTech constellation orbiting Kerbin with and active vessel dish (or omni antenna) with a range of at least 47,000 km"

 

However, I just launched a 4 satellite group that is equally spaced and all have the 90,000 km KR-7, currently activated and pointing at targets.

 

All of the other requirements are listed as MET

 

Is there a quirk or requirement I am missing?

Link to comment
Share on other sites

  • 3 weeks later...

@nightingale Thank you so much for all the work you've put into maintaining this contract pack. It really does help to provide some direction and funds in a meaningful non-repetitive way, these contracts serve a purpose to progress the game and that is very helpful and interesting.  I have 3 topics of discussion today, hopefully they are clear.
I did do some searching on these topics but my search-fu may have been lacking today (this is a long thread so search was required), but I didn't find anyone specifically mentioning these problems with the contract I was attempting (The contracts not being offered or no longer being offered).


1- The contract to point at dish at one of the inner planets never become available:
The InnerSystemSat.cfg contract never gets offered to me, while the OuterSystemSat.cfg and EverythingSat.cfg contracts do and as far as I can tell if you are offered the EverythingSat.cfg you should have all the equipment required to do both Inner- and Outer- System contracts

For reference The InnerSystemSat is point a dish at ONE of the inner system planets, Moho or Eve or Duna.  But that contract always said the power generation requirement is unmet when examining it.  I did some digging and found a line that appears to be missing from the InnerSystemSat.cfg file. I think the following needs to be inserted at line 244: 

partModuleType = Antenna

Then it will behave the same way as the other two contracts listed.

2- The initial comm network stops being a contract that can be accepted even though I don't feel like an effect network has been setup yet:
I've also noticed that it's possible to accidentally complete the 3 sat or 4 sat comm network before you are ready to accept them.  I was able to stop them from showing up by having a ScanSat lowres scanner in polar orbit (had an omni direction at 500K circular orbit) and placing a more robust satellite (2x KR-7 to aim at an InnerSystemSat, +1 omni to link to the KSC) in KeoSync roughly over the KSC in preparation to setup my longer distances comm's network and sending a long range comm sat (Lots of dishes, since I misread the instructions and built the thing to cover all 3 inner planets, + 1x KR-7 to talk to the KSC KeoSync Sat, +1x CommTech1 to aim at active vessel) into a highly elliptical polar orbit. I went back to the KSC to get the local comm network contract as that long range comm sat traveled it's 15 days to the apoapsis only to find out I couldn't accept the contract as I already had more than 60% coverage of Kerbin.

Is there anything that can be done to prevent the accidental completion? Cause I could use the funds or accept the contract even through it's already complete? Maybe add the requirement that it must be built after contract acceptance but I don't know how that will get around the coverage issue I'm experiencing?

Does anyone have any suggestions on how I could clear that coverage amount without just de-orbiting or otherwise destroying my satellites so I could accept the contract then turn the satellites back on?

3- The point a dish at one of Kerbin's moons can go away even through a dish isn't point at them:
Can the upgraded tracking station trigger/block the point a dish out from Kerbin contract(s) (specifically aim a dish at one of Kerbins moons)? I noticed that the contract was no longer available at the same time I noticed the local comm network went away in topic 2 as well but I don't specifically have any dishes point at Mun or Minus so that makes me think their is something else at play. Also this isn't my first play through that I've noticed that particular contract get greyed out before I took steps to complete it.



Once again, I want to thank you for your hard work on this Contract Pack keeping it part of my continued enjoyment of KSP.

~ Torr

Link to comment
Share on other sites

HI all, I'm having fun trying to meet the satellite contract requirements in RP-0 career mode but I think I may have hit a bug.

I'm currently trying to meet the requirements for the GEO communications network, each satellite has a KR-7 in cone mode and 2x Comm32s - all requirements are now met with the exception of satellite coverage which dropped to zero at some point during the contract and now refuses to budge. I'm aware that this can take a few minutes to update in the tracking station but so far nothing.

Screenshot here: https://www.dropbox.com/s/r86subi8r8rijnj/screenshot13.png?dl=0

The mod installs are all done via CKAN and close to the minimum needed for RSS/RP-0.

Any ideas?

Cheers,

FluxC

PS. Thanks for all the effort that goes into these mods!

Link to comment
Share on other sites

I'm not sure if it will help or not, but if you're on 1.3 try going into the contract pack and changing

    REQUIREMENT
    {
        name = PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked

        partModuleType = Antenna
        partModuleType = Power
    }

to

    REQUIREMENT
    {
        name = PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked

        partModuleType = Antenna
        partModuleType = Generator
    }

 

In the individual contracts themselves. This line is normally right near the bottom.

I had an issue when I did a fresh install of 1.3 with Remote Tech, this pack + Config that was fixed by this, however that was contracts refusing to show up in general so I'm not sure if this will work or not.

Link to comment
Share on other sites

  • 3 weeks later...

Hi all, hi nightingale,

first of all, thanks for the contract pack, funded me my last trip through kerbal a couple of months ago :)

Though now I have a compatibility problem for which I need your help. I decided to follow Scott Manley's path and conquer the Ciro System from Galileo's Planet Pack.

Unfortunately, the only missions that pop up are the generic one's based on the 'PlanetMoonRelay.cfg', nothing else. I want especially the inner / outer network missions so I investigated into their cfg's. Could not find a reason for them not to pop up, they seemed generic enough, did not mention any stock planets like 'Kerbin' or so (which is usually the reason for incompatibility with contract packs and the planet mod). 

Do you have any idea what could be the reason and what has to be changed in the cfg? Thanks for help!

Best

Pawel

Link to comment
Share on other sites

@FluxC - Sorry for the late reply, but you should post RP-0 issues on their thread (RP-0 does not use this contract pack).

@pawelz - Just releasing a new version that fixes a major problem with contract availability.  Let me know if it works for Galileo or not.

---

New release here!

ContractPack-RemoteTech 2.1.4

  • Fix contracts to work in latest KSP/Contract Configurator (thanks oroussel).
  • Fix agents file to use title instead of name.
Link to comment
Share on other sites

On 27.8.2017 at 5:27 PM, nightingale said:

 

@pawelz - Just releasing a new version that fixes a major problem with contract availability.  Let me know if it works for Galileo or not.

Just checked, works fine now. Whooo!!!!

Thanks a lot for the swift help :)

Link to comment
Share on other sites

I am also unable to get the contracts for setting up networks around the Mun and Minmus even in the newest release. Can someone tell me precisely what I need to have set up in order for the contracts to become available. Maybe it is because the orbits of my Kerbin network are not within the eccentricity parameters for it to be classified as a constellation in the code?

EDIT: I found the solution on github. You have to point a dish or antenna with the required range at "Active Vessel" to meet the requirements.

Edited by Spartan125
Link to comment
Share on other sites

On 7/11/2017 at 2:01 AM, jg727 said:

The Mun and Minmus network contracts are unavailable for me.  It says I:

 

"must have a RemoteTech constellation orbiting Kerbin with and active vessel dish (or omni antenna) with a range of at least 47,000 km"

 

However, I just launched a 4 satellite group that is equally spaced and all have the 90,000 km KR-7, currently activated and pointing at targets.

 

All of the other requirements are listed as MET

 

Is there a quirk or requirement I am missing?

@nightingale I am experiencing the same issue. I am unsure what "the active vessel" is supposed to be here.

5ClgMrz.png

Current network. Note that one of the outer relays is pointed at the Mun and has line of sight.

lhIIjxA.png

Link to comment
Share on other sites

  • 1 month later...

@nightingale I am having a problem with the contract "Communication Satellite for the Inner Planets". 

It says, "there must be an inner planet without coverage". 

I do not have any satellites in orbit possessing a dish with the range capable of reaching even Eve. Eve is currently at it's closest approach to Kerbin at about 3,500 Mm. The most powerful dish I have orbiting has only about a 160 Mm range. 

Thanks for any help :) 

Edited by Voodoo8648
Link to comment
Share on other sites

  • 3 weeks later...

Hey guys

I have an issue, which I dont really know if its with the contract pack or contract configurator.

With a fresh KSP 1.3.1 install, with only contract configurator (1.23.3), remotetech (1.8.9), module manager (2.8.1) and the remotetech contract pack (2.1.4), all installed with CKAN, the contracts from the remotetech contract pack isn't working. They just dont show up, and when I look in the in-game debug interface, I can see that they aren't loaded because of errors with both parameters and requirements, but it mostly seems like its related to the specific RemoteTech parameters and requirements.

Here are the logs:

RT_EverythingSat.log:

Spoiler

Debug information for CONTRACT_TYPE 'RT_EverythingSat':

Configuration:
CONTRACT_TYPE
{
    advanceFunds = 150000.0 + 10000.0 * @allBodies.Count()
    rewardFunds = @advanceFunds * 3.0
    rewardReputation = 10.0
    maxCompletions = 1
    agent = Communication Satellite Group
    targetBody = HomeWorld()
    prestige = Exceptional
    group = RemoteTech
    completedMessage = The satellites are up and transmitting, and our shake-out testing is complete!
    synopsis = Launch two satellites that can each connect to all planets in the system.
    description = We've come up with a brilliant plan.  Let's launch a satellite that has one dish for each and every planet in the system!  That way we don't have to keep bothering with launching these things.  It would be nice if you could also put it in @geostationary orbit above the KCS.  Oh, and launch a second one while you're at it - just in case the first one breaks.
    title = Communication satellite for every planet
    sortKey = 02.02
    name = RT_EverythingSat
    DATA
    {
        isKerbin = @targetBody.Name() == "Kerbin"
        type = bool
    }
    DATA
    {
        geostationary = @isKerbin ? "keostationary" : "geostationary"
        type = string
    }
    DATA
    {
        allBodies = AllBodies().Where(cb => cb != HomeWorld() && cb.IsPlanet())
        type = List<CelestialBody>
    }
    DATA
    {
        keoAltitude = Pow(@G * @targetBody.Mass() * @t * @t / 4.0 / @pi / @pi, 1.0 / 3.0) - @targetBody.Radius()
        pi = 3.14159265359
        t = @targetBody.RotationalPeriod()
        G = 6.67384 * Pow(10, -11)
        type = double
    }
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        define = Kerbol CommSat I
        type = VesselParameterGroup
        name = KerbolSatI
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            situation = ORBITING
            type = ReachState
            name = ReachState
        }
        PARAMETER
        {
            iteratorCount = @ITERATOR/target.Count()
            target = @ITERATOR/target.ElementAt(IteratorCurrentIndex())
            targetBody = @target
            antennaType = Dish
            type = HasAntenna
            name = HasAntenna
            ITERATOR
            {
                target = @/allBodies
                type = CelestialBody
            }
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        define = Kerbol CommSat II
        type = VesselParameterGroup
        name = KerbolSatII
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = Kerbol CommSat I
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            situation = ORBITING
            type = ReachState
            name = ReachState
        }
        PARAMETER
        {
            iteratorCount = @ITERATOR/target.Count()
            target = @ITERATOR/target.ElementAt(IteratorCurrentIndex())
            targetBody = @target
            antennaType = Dish
            type = HasAntenna
            name = HasAntenna
            ITERATOR
            {
                target = @/allBodies
                type = CelestialBody
            }
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        completionText = Shake-out testing completed
        waitingText = Performing shake-out testing
        preWaitText = Testing time after network up
        duration = 7d
        type = Duration
        name = Duration
    }
    PARAMETER
    {
        targetBody = @/targetBody
        rewardFunds = @/rewardFunds / 2.0
        rewardReputation = @/rewardReputation * 4.0
        optional = True
        title = (Optional) Put one of the satellites in @/geostationary orbit above the KSC
        type = All
        name = KEO
        PARAMETER
        {
            targetBody = @/targetBody
            disableOnStateChange = false
            vessel = Kerbol CommSat II
            vessel = Kerbol CommSat I
            type = VesselParameterGroup
            name = KEO_Sat
            PARAMETER
            {
                targetBody = @/targetBody
                deviationWindow = 1.0
                index = 0
                type = ReachSpecificOrbit
                name = ReachSpecificOrbit1
            }
            PARAMETER
            {
                targetBody = @/targetBody
                distance = 100000.0
                index = 0
                type = VisitWaypoint
                name = VisitWaypoint1
            }
        }
        PARAMETER
        {
            targetBody = @/targetBody
            completionText = Orbit Verified
            waitingText = Verifying orbit
            preWaitText = Keep a stable orbit
            duration = 4h
            type = Duration
            name = Duration
        }
    }
    BEHAVIOUR
    {
        type = WaypointGenerator
        name = KSCWaypoint
        WAYPOINT
        {
            targetBody = @/targetBody
            longitude = KSCLocation().Longitude()
            latitude = 0.0
            altitude = @/keoAltitude
            icon = dish
            name = Directly above KSC
        }
    }
    BEHAVIOUR
    {
        type = OrbitGenerator
        name = KEO
        FIXED_ORBIT
        {
            targetBody = @/targetBody
            ORBIT
            {
                REF = 1
                EPH = 122896.298156917
                MNA = 1.56901658088753
                LAN = 263.709641058871
                LPE = 270.097584818355
                INC = 0
                ECC = 0
                SMA = @/keoAltitude + @/targetBody.Radius()
            }
        }
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        title = There must be a planet without coverage
        hideChildren = true
        type = Any
        name = Coverage
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/allBodies.ElementAt(0)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/allBodies.Count() > 0
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/allBodies.ElementAt(1)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/allBodies.Count() > 1
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/allBodies.ElementAt(2)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/allBodies.Count() > 2
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/allBodies.ElementAt(3)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/allBodies.Count() > 3
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/allBodies.ElementAt(4)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/allBodies.Count() > 4
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/allBodies.ElementAt(5)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/allBodies.Count() > 5
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/allBodies.ElementAt(6)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/allBodies.Count() > 6
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/allBodies.ElementAt(7)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/allBodies.Count() > 7
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/allBodies.ElementAt(8)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/allBodies.Count() > 8
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/allBodies.ElementAt(9)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/allBodies.Count() > 9
                type = Expression
            }
        }
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        type = Any
        name = AnyGigaDish
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = RTGigaDish1
            type = PartUnlocked
            name = PartUnlocked1
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = RTGigaDish2
            type = PartUnlocked
            name = PartUnlocked2
        }
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        partModuleType = Generator
        partModuleType = Antenna
        type = PartModuleTypeUnlocked
        name = PartModuleTypeUnlocked
    }
}

Data Nodes:
RT_EverythingSat
    RemoteTech:name = RemoteTech, deterministic = True
    RemoteTech:displayName = RemoteTech, deterministic = True
    RemoteTech:minVersion = 1.15.0, deterministic = True
    RemoteTech:maxCompletions = 0, deterministic = True
    RemoteTech:maxSimultaneous = 0, deterministic = True
    RemoteTech:disabledContractType = [], deterministic = True
    RemoteTech:agent = Contracts.Agents.Agent, deterministic = True
    RemoteTech:sortKey = RemoteTech, deterministic = True
    RemoteTech:tip = Launching CommSats..., deterministic = True
    name = RT_EverythingSat, deterministic = True
    trace = False, deterministic = True
    title = Communication satellite for every planet, deterministic = True
    tag = , deterministic = True
    description = We've come up with a brilliant plan.  Let's launch a satellite that has one dish for each and every planet in the system!  That way we don't have to keep bothering with launching these things.  It would be nice if you could also put it in keostationary orbit above the KCS.  Oh, and launch a second one while you're at it - just in case the first one breaks., deterministic = True
    topic = , deterministic = True
    subject = , deterministic = True
    notes = null, deterministic = True
    synopsis = Launch two satellites that can each connect to all planets in the system., deterministic = True
    completedMessage = The satellites are up and transmitting, and our shake-out testing is complete!, deterministic = True
    agent = Contracts.Agents.Agent, deterministic = True
    minExpiry = 5, deterministic = True
    maxExpiry = 100, deterministic = True
    deadline = 0, deterministic = True
    cancellable = True, deterministic = True
    declinable = True, deterministic = True
    autoAccept = False, deterministic = True
    prestige = [ Exceptional ], deterministic = True
    targetBody = Kerbin (CelestialBody), deterministic = True
    maxCompletions = 1, deterministic = True
    maxSimultaneous = 0, deterministic = True
    rewardFunds = 630000, deterministic = True
    rewardReputation = 10, deterministic = True
    rewardScience = 0, deterministic = True
    failureFunds = 0, deterministic = True
    failureReputation = 0, deterministic = True
    advanceFunds = 210000, deterministic = True
    isKerbin = True, deterministic = True
    geostationary = keostationary, deterministic = True
    allBodies = [ Moho (CelestialBody), Eve (CelestialBody), Duna (CelestialBody), Jool (CelestialBody), Dres (CelestialBody), Eeloo (CelestialBody) ], deterministic = True
    G = 6.67384E-11, deterministic = True
    t = 21549.4251830898, deterministic = True
    pi = 3.14159265359, deterministic = True
    keoAltitude = 2863292.54514567, deterministic = True
    genericTitle = Communication satellite for every planet, deterministic = True
    genericDescription = We've come up with a brilliant plan.  Let's launch a satellite that has one dish for each and every planet in the system!  That way we don't have to keep bothering with launching these things.  It would be nice if you could also put it in keostationary orbit above the KCS.  Oh, and launch a second one while you're at it - just in case the first one breaks., deterministic = True
    sortKey = 02.02, deterministic = True

    KerbolSatI
        type = VesselParameterGroup, deterministic = True
        name = KerbolSatI, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = Kerbol CommSat I, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        ReachState
            type = ReachState, deterministic = True
            name = ReachState, deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            failWhenUnmet = False, deterministic = True
            biome = null, deterministic = True
            situation = [ ORBITING ], deterministic = True
            minAltitude = -3.402823E+38, deterministic = True
            maxAltitude = 3.402823E+38, deterministic = True
            minTerrainAltitude = 0, deterministic = True
            maxTerrainAltitude = 3.402823E+38, deterministic = True
            minSpeed = 0, deterministic = True
            maxSpeed = 1.79769313486232E+308, deterministic = True
            minRateOfClimb = -1.79769313486232E+308, deterministic = True
            maxRateOfClimb = 1.79769313486232E+308, deterministic = True
            minAcceleration = 0, deterministic = True
            maxAcceleration = 3.402823E+38, deterministic = True
            targetBody = [ Kerbin (CelestialBody) ], deterministic = True
        
        HasAntenna
            type = HasAntenna, deterministic = True
            name = HasAntenna, deterministic = True
            targetBody = Moho (CelestialBody), deterministic = False
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            minAntennaPower = 0, deterministic = True
            maxAntennaPower = 1.79769313486232E+308, deterministic = True
            antennaType = TRANSMIT, deterministic = True
            iteratorCount = 6, deterministic = True
            target = Moho (CelestialBody), deterministic = False
        
            ITERATOR
                type = CelestialBody, deterministic = True
                target = [ Moho (CelestialBody), Eve (CelestialBody), Duna (CelestialBody), Jool (CelestialBody), Dres (CelestialBody), Eeloo (CelestialBody) ], deterministic = True
            
    KerbolSatII
        type = VesselParameterGroup, deterministic = True
        name = KerbolSatII, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = Kerbol CommSat II, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        IsNotVessel
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = Kerbol CommSat I, deterministic = True
        
        ReachState
            type = ReachState, deterministic = True
            name = ReachState, deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            failWhenUnmet = False, deterministic = True
            biome = null, deterministic = True
            situation = [ ORBITING ], deterministic = True
            minAltitude = -3.402823E+38, deterministic = True
            maxAltitude = 3.402823E+38, deterministic = True
            minTerrainAltitude = 0, deterministic = True
            maxTerrainAltitude = 3.402823E+38, deterministic = True
            minSpeed = 0, deterministic = True
            maxSpeed = 1.79769313486232E+308, deterministic = True
            minRateOfClimb = -1.79769313486232E+308, deterministic = True
            maxRateOfClimb = 1.79769313486232E+308, deterministic = True
            minAcceleration = 0, deterministic = True
            maxAcceleration = 3.402823E+38, deterministic = True
            targetBody = [ Kerbin (CelestialBody) ], deterministic = True
        
        HasAntenna
            type = HasAntenna, deterministic = True
            name = HasAntenna, deterministic = True
            targetBody = Moho (CelestialBody), deterministic = False
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            minAntennaPower = 0, deterministic = True
            maxAntennaPower = 1.79769313486232E+308, deterministic = True
            antennaType = TRANSMIT, deterministic = True
            iteratorCount = 6, deterministic = True
            target = Moho (CelestialBody), deterministic = False
        
            ITERATOR
                type = CelestialBody, deterministic = True
                target = [ Moho (CelestialBody), Eve (CelestialBody), Duna (CelestialBody), Jool (CelestialBody), Dres (CelestialBody), Eeloo (CelestialBody) ], deterministic = True
            
    Duration
        type = Duration, deterministic = True
        name = Duration, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 7 days, deterministic = True
        preWaitText = Testing time after network up, deterministic = True
        waitingText = Performing shake-out testing, deterministic = True
        completionText = Shake-out testing completed, deterministic = True
        startCriteria = CONTRACT_ACCEPTANCE, deterministic = True
        parameter = [], deterministic = True
    
    KEO
        type = All, deterministic = True
        name = KEO, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 315000, deterministic = True
        rewardReputation = 40, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = True, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = (Optional) Put one of the satellites in keostationary orbit above the KSC, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
    
        KEO_Sat
            type = VesselParameterGroup, deterministic = True
            name = KEO_Sat, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = False, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            duration = 00:00:00, deterministic = True
            define = null, deterministic = True
            defineList = null, deterministic = True
            vessel = [ Kerbol CommSat I, Kerbol CommSat II ], deterministic = True
            dissassociateVesselsOnContractFailure = True, deterministic = True
            dissassociateVesselsOnContractCompletion = False, deterministic = True
            hideVesselName = False, deterministic = True
        
            ReachSpecificOrbit1
                type = ReachSpecificOrbit, deterministic = True
                name = ReachSpecificOrbit1, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                rewardFunds = 0, deterministic = True
                rewardReputation = 0, deterministic = True
                rewardScience = 0, deterministic = True
                failureFunds = 0, deterministic = True
                failureReputation = 0, deterministic = True
                optional = False, deterministic = True
                disableOnStateChange = null, deterministic = True
                completeInSequence = False, deterministic = True
                hidden = False, deterministic = True
                hideChildren = False, deterministic = True
                title = null, deterministic = True
                notes = null, deterministic = True
                completedMessage = null, deterministic = True
                index = 0, deterministic = True
                displayNotes = True, deterministic = True
                deviationWindow = 1, deterministic = True
            
            VisitWaypoint1
                type = VisitWaypoint, deterministic = True
                name = VisitWaypoint1, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                rewardFunds = 0, deterministic = True
                rewardReputation = 0, deterministic = True
                rewardScience = 0, deterministic = True
                failureFunds = 0, deterministic = True
                failureReputation = 0, deterministic = True
                optional = False, deterministic = True
                disableOnStateChange = null, deterministic = True
                completeInSequence = False, deterministic = True
                hidden = False, deterministic = True
                hideChildren = False, deterministic = True
                title = null, deterministic = True
                notes = null, deterministic = True
                completedMessage = null, deterministic = True
                index = 0, deterministic = True
                distance = 100000, deterministic = True
                horizontalDistance = 0, deterministic = True
                hideOnCompletion = True, deterministic = True
                showMessages = False, deterministic = True
            
        Duration
            type = Duration, deterministic = True
            name = Duration, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            duration = 04:00:00, deterministic = True
            preWaitText = Keep a stable orbit, deterministic = True
            waitingText = Verifying orbit, deterministic = True
            completionText = Orbit Verified, deterministic = True
            startCriteria = CONTRACT_ACCEPTANCE, deterministic = True
            parameter = [], deterministic = True
        
    KSCWaypoint
        type = WaypointGenerator, deterministic = True
        name = KSCWaypoint, deterministic = True
        targetBody = null, deterministic = True
    
        WAYPOINT_0
            type = WAYPOINT, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            name = [ Directly above KSC ], deterministic = True
            altitude = 2863292.54514567, deterministic = True
            parameter = [], deterministic = True
            hidden = False, deterministic = True
            icon = dish, deterministic = True
            underwater = False, deterministic = True
            clustered = False, deterministic = True
            latitude = 0, deterministic = True
            longitude = -74.6003902907316, deterministic = False
        
    KEO_1
        type = OrbitGenerator, deterministic = True
        name = KEO, deterministic = True
        targetBody = null, deterministic = True
    
        ORBIT_0
            ORBIT = Orbit, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
        
            ORBIT
                SMA = 3463292.54514567, deterministic = True
                ECC = 0, deterministic = True
                INC = 0, deterministic = True
                LPE = 270.097584818355, deterministic = True
                LAN = 263.709641058871, deterministic = True
                MNA = 1.56901658088753, deterministic = True
                EPH = 122896.298156917, deterministic = True
                REF = 1, deterministic = True
            
    Coverage
        type = Any, deterministic = True
        name = Coverage, deterministic = True
        title = There must be a planet without coverage, deterministic = True
        hideChildren = True, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
        All
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Moho (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = True, deterministic = True
            
        All_1
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Eve (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = True, deterministic = True
            
        All_2
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Duna (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = True, deterministic = True
            
        All_3
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Jool (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = True, deterministic = True
            
        All_4
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Dres (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = True, deterministic = True
            
        All_5
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Eeloo (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = True, deterministic = True
            
        All_6
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
        All_7
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
        All_8
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
        All_9
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
    AnyGigaDish
        type = Any, deterministic = True
        name = AnyGigaDish, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
        PartUnlocked1
            type = PartUnlocked, deterministic = True
            name = PartUnlocked1, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ RTGigaDish1 ], deterministic = True
        
        PartUnlocked2
            type = PartUnlocked, deterministic = True
            name = PartUnlocked2, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ RTGigaDish2 ], deterministic = True
        
    PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked, deterministic = True
        name = PartModuleTypeUnlocked, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
        partModuleType = [ Antenna, Generator ], deterministic = True
    

Output log:
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'RT_EverythingSat'
 

RT_GasGiantRelay.log

Spoiler

Debug information for CONTRACT_TYPE 'RT_GasGiantRelay':

Configuration:
CONTRACT_TYPE
{
    advanceFunds = 25000.0 + @targetMoons.Count()
    rewardFunds = @advanceFunds * 3.0
    rewardReputation = 2.0
    maxCompletions = 1
    agent = Communication Satellite Group
    targetBody = @targetPlanet
    prestige = Exceptional
    group = RemoteTech
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!
    synopsis = Build a communication network that provides coverage of all of @targetBody's moons with a link back to mission control.
    description = There's so much science to be done in the @targetBody system!  We need to set up a communication network that can cover every moon in the system.
    title = Create a network for @targetBody
    sortKey = "03." + @targetBody.Index().ToString("D2")
    name = RT_GasGiantRelay
    DATA_EXPAND
    {
        targetPlanet = AllBodies().Where(cb => cb.IsPlanet() && cb.Children().Count() >= 3)
        type = CelestialBody
    }
    DATA
    {
        targetMoons = @targetPlanet.Children()
        type = List<CelestialBody>
    }
    PARAMETER
    {
        iteratorCount = @ITERATOR/targetMoon.Count()
        targetMoon = @ITERATOR/targetMoon.ElementAt(IteratorCurrentIndex())
        coverage = 0.95
        targetBody = @targetMoon
        type = CelestialBodyCoverage
        name = MoonCoverage
        ITERATOR
        {
            targetMoon = @/targetMoons
            type = CelestialBody
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        completionText = Shake-out testing completed
        waitingText = Performing shake-out testing
        preWaitText = Testing time after network up
        duration = 7d
        type = Duration
        name = Duration
    }
    REQUIREMENT
    {
        maxCoverage = 1.0
        minCoverage = 0.7
        targetBody = HomeWorld()
        type = CelestialBodyCoverage
        name = CelestialBodyCoverage
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        type = Any
        name = AnyGigaDish
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = RTGigaDish1
            type = PartUnlocked
            name = PartUnlocked1
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = RTGigaDish2
            type = PartUnlocked
            name = PartUnlocked2
        }
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        partModuleType = Generator
        partModuleType = Antenna
        type = PartModuleTypeUnlocked
        name = PartModuleTypeUnlocked
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        maxCoverage = 0.7
        type = CelestialBodyCoverage
    }
}

Data Nodes:
RT_GasGiantRelay
    RemoteTech:name = RemoteTech, deterministic = True
    RemoteTech:displayName = RemoteTech, deterministic = True
    RemoteTech:minVersion = 1.15.0, deterministic = True
    RemoteTech:maxCompletions = 0, deterministic = True
    RemoteTech:maxSimultaneous = 0, deterministic = True
    RemoteTech:disabledContractType = [], deterministic = True
    RemoteTech:agent = Contracts.Agents.Agent, deterministic = True
    RemoteTech:sortKey = RemoteTech, deterministic = True
    RemoteTech:tip = Launching CommSats..., deterministic = True
    name = RT_GasGiantRelay, deterministic = True
    trace = False, deterministic = True
    title = Create a network for , deterministic = True
    tag = , deterministic = True
    description = There's so much science to be done in the  system!  We need to set up a communication network that can cover every moon in the system., deterministic = True
    topic = , deterministic = True
    subject = , deterministic = True
    notes = null, deterministic = True
    synopsis = Build a communication network that provides coverage of all of 's moons with a link back to mission control., deterministic = True
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!, deterministic = True
    agent = Contracts.Agents.Agent, deterministic = True
    minExpiry = 5, deterministic = True
    maxExpiry = 100, deterministic = True
    deadline = 0, deterministic = True
    cancellable = True, deterministic = True
    declinable = True, deterministic = True
    autoAccept = False, deterministic = True
    prestige = [ Exceptional ], deterministic = True
    targetBody = null, deterministic = True
    maxCompletions = 1, deterministic = True
    maxSimultaneous = 0, deterministic = True
    rewardFunds = 75000, deterministic = True
    rewardReputation = 2, deterministic = True
    rewardScience = 0, deterministic = True
    failureFunds = 0, deterministic = True
    failureReputation = 0, deterministic = True
    advanceFunds = 25000, deterministic = True
    targetMoons = null, deterministic = True
    type = CelestialBody, deterministic = True
    targetPlanet = [ Jool (CelestialBody) ], deterministic = True
    genericTitle = Create a network for , deterministic = True
    genericDescription = There's so much science to be done in the  system!  We need to set up a communication network that can cover every moon in the system., deterministic = True
    sortKey = 03.-01, deterministic = True

    MoonCoverage
        type = CelestialBodyCoverage, deterministic = True
        name = MoonCoverage, deterministic = True
        targetBody = null, deterministic = False
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        iteratorCount = 0, deterministic = True
        targetMoon = null, deterministic = False
    
        ITERATOR
            type = CelestialBody, deterministic = True
            targetMoon = null, deterministic = True
        
    Duration
        type = Duration, deterministic = True
        name = Duration, deterministic = True
        targetBody = null, deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 7 days, deterministic = True
        preWaitText = Testing time after network up, deterministic = True
        waitingText = Performing shake-out testing, deterministic = True
        completionText = Shake-out testing completed, deterministic = True
        startCriteria = CONTRACT_ACCEPTANCE, deterministic = True
        parameter = [], deterministic = True
    
    CelestialBodyCoverage
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
    AnyGigaDish
        type = Any, deterministic = True
        name = AnyGigaDish, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
        PartUnlocked1
            type = PartUnlocked, deterministic = True
            name = PartUnlocked1, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = null, deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ RTGigaDish1 ], deterministic = True
        
        PartUnlocked2
            type = PartUnlocked, deterministic = True
            name = PartUnlocked2, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = null, deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ RTGigaDish2 ], deterministic = True
        
    PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked, deterministic = True
        name = PartModuleTypeUnlocked, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
        partModuleType = [ Antenna, Generator ], deterministic = True
    
    CelestialBodyCoverage_1
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    

Output log:
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_GasGiantRelay': Error parsing targetBody
[EXCEPTION] ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ListExpressionParser`1[CelestialBody].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseStatement[CelestialBody] (System.Collections.Generic.List`1 lval) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet
.............* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[WARNING] ContractConfigurator.ConfigNodeUtil: Got an unexpected exception trying to load 'targetMoons' as a list:
[EXCEPTION] System.MissingMethodException: Cannot find method 'Children' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[List`1] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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.Collections.Generic.List`1[CelestialBody]].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet.Children()
.......................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[List`1] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[List`1] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_GasGiantRelay': Error parsing targetMoons
[EXCEPTION] System.MissingMethodException: Cannot find method 'Children' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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[T].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet.Children()
.......................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
  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 
Rethrow as System.Reflection.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.ConfigNodeUtil.ParseValue[List`1] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
[WARNING] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_GasGiantRelay': unexpected child node 'DATA_EXPAND' found, ignored.
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'RT_GasGiantRelay'
 

RT_InnerPlanetRelay.log

Spoiler

Debug information for CONTRACT_TYPE 'RT_InnerPlanetRelay':

Configuration:
CONTRACT_TYPE
{
    advanceFunds = 70000.0
    rewardFunds = @advanceFunds * 3.0
    rewardReputation = 1.0
    maxCompletions = 1
    agent = Communication Satellite Group
    targetBody = @targetPlanet
    prestige = Significant
    group = RemoteTech
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!
    synopsis = Build a communication network that provides coverage of @targetBody with a link back to mission control.
    description = @isMoho ? @descMoho : @isDuna ? @descDuna : @isEve ? @descEve : @isVenus ? @descVenus : @descDefault
    title = Create a network for @targetBody
    sortKey = "03." + @targetBody.Index().ToString("D2")
    name = RT_InnerPlanetRelay
    DATA
    {
        targetSMA = @sma * 1.55
        sma = HomeWorld().SemiMajorAxis()
        type = double
    }
    DATA
    {
        descVenus = We'd like to know if our antennas are powerful enough to get through to the surface of Venus.  Set up a communication network for us.
        descEve = We'd like to know if our antennas are powerful enough to get through Eve's purple clouds.  Set up a communication network for us.
        descDuna = We'd like to know if our rover wheels will actually work on @targetBody.  Set up a communication network for us.
        descMoho = We'd like to find out if our probes can survive the temperatures on @targetBody.  Set up a communication network for us.
        descDefault = We'd like to know more about @targetBody.  Set up a communication network for us.
        type = string
    }
    DATA_EXPAND
    {
        targetPlanet = AllBodies().Where(cb => cb.SemiMajorAxis() < @targetSMA && cb.IsPlanet() && cb.Children().Count() < 3 && cb != HomeWorld())
        type = CelestialBody
    }
    DATA
    {
        isVenus = @targetPlanet.Name() == "Venus"
        isEve = @targetPlanet.Name() == "Eve"
        isDuna = @targetPlanet.Name() == "Duna" || @targetPlanet.Name() == "Mars"
        isMoho = @targetPlanet.Name() == "Moho" || @targetPlanet.Name() == "Mercury"
        type = bool
    }
    PARAMETER
    {
        coverage = 0.95
        targetBody = @/targetPlanet
        type = CelestialBodyCoverage
        name = CoverageParameter
    }
    PARAMETER
    {
        targetBody = @/targetBody
        completionText = Shake-out testing completed
        waitingText = Performing shake-out testing
        preWaitText = Testing time after network up
        duration = 7d
        type = Duration
        name = Duration
    }
    REQUIREMENT
    {
        maxCoverage = 1.0
        minCoverage = 0.7
        targetBody = HomeWorld()
        type = CelestialBodyCoverage
        name = CelestialBodyCoverage
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        type = Any
        name = CommDish
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = commDish
            type = PartUnlocked
            name = PartUnlocked1
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = RTLongDish2
            type = PartUnlocked
            name = PartUnlocked2
        }
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        partModuleType = Generator
        partModuleType = Antenna
        type = PartModuleTypeUnlocked
        name = PartModuleTypeUnlocked
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        maxCoverage = 0.7
        type = CelestialBodyCoverage
    }
}

Data Nodes:
RT_InnerPlanetRelay
    RemoteTech:name = RemoteTech, deterministic = True
    RemoteTech:displayName = RemoteTech, deterministic = True
    RemoteTech:minVersion = 1.15.0, deterministic = True
    RemoteTech:maxCompletions = 0, deterministic = True
    RemoteTech:maxSimultaneous = 0, deterministic = True
    RemoteTech:disabledContractType = [], deterministic = True
    RemoteTech:agent = Contracts.Agents.Agent, deterministic = True
    RemoteTech:sortKey = RemoteTech, deterministic = True
    RemoteTech:tip = Launching CommSats..., deterministic = True
    name = RT_InnerPlanetRelay, deterministic = True
    trace = False, deterministic = True
    title = Create a network for , deterministic = True
    tag = , deterministic = True
    description = We'd like to know more about .  Set up a communication network for us., deterministic = True
    topic = , deterministic = True
    subject = , deterministic = True
    notes = null, deterministic = True
    synopsis = Build a communication network that provides coverage of  with a link back to mission control., deterministic = True
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!, deterministic = True
    agent = Contracts.Agents.Agent, deterministic = True
    minExpiry = 5, deterministic = True
    maxExpiry = 100, deterministic = True
    deadline = 0, deterministic = True
    cancellable = True, deterministic = True
    declinable = True, deterministic = True
    autoAccept = False, deterministic = True
    prestige = [ Significant ], deterministic = True
    targetBody = null, deterministic = True
    maxCompletions = 1, deterministic = True
    maxSimultaneous = 0, deterministic = True
    rewardFunds = 210000, deterministic = True
    rewardReputation = 1, deterministic = True
    rewardScience = 0, deterministic = True
    failureFunds = 0, deterministic = True
    failureReputation = 0, deterministic = True
    advanceFunds = 70000, deterministic = True
    sma = 13599840256, deterministic = True
    targetSMA = 21079752396.8, deterministic = True
    descDefault = We'd like to know more about .  Set up a communication network for us., deterministic = True
    descMoho = We'd like to find out if our probes can survive the temperatures on .  Set up a communication network for us., deterministic = True
    descDuna = We'd like to know if our rover wheels will actually work on .  Set up a communication network for us., deterministic = True
    descEve = We'd like to know if our antennas are powerful enough to get through Eve's purple clouds.  Set up a communication network for us., deterministic = True
    descVenus = We'd like to know if our antennas are powerful enough to get through to the surface of Venus.  Set up a communication network for us., deterministic = True
    isMoho = False, deterministic = True
    isDuna = False, deterministic = True
    isEve = False, deterministic = True
    isVenus = False, deterministic = True
    type = CelestialBody, deterministic = True
    targetPlanet = [ Moho (CelestialBody), Eve (CelestialBody), Duna (CelestialBody) ], deterministic = True
    genericTitle = Create a network for , deterministic = True
    genericDescription = We'd like to know more about .  Set up a communication network for us., deterministic = True
    sortKey = 03.-01, deterministic = True

    CoverageParameter
        type = CelestialBodyCoverage, deterministic = True
        name = CoverageParameter, deterministic = True
        targetBody = null, deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
    
    Duration
        type = Duration, deterministic = True
        name = Duration, deterministic = True
        targetBody = null, deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 7 days, deterministic = True
        preWaitText = Testing time after network up, deterministic = True
        waitingText = Performing shake-out testing, deterministic = True
        completionText = Shake-out testing completed, deterministic = True
        startCriteria = CONTRACT_ACCEPTANCE, deterministic = True
        parameter = [], deterministic = True
    
    CelestialBodyCoverage
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
    CommDish
        type = Any, deterministic = True
        name = CommDish, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
        PartUnlocked1
            type = PartUnlocked, deterministic = True
            name = PartUnlocked1, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = null, deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ commDish ], deterministic = True
        
        PartUnlocked2
            type = PartUnlocked, deterministic = True
            name = PartUnlocked2, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = null, deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ RTLongDish2 ], deterministic = True
        
    PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked, deterministic = True
        name = PartModuleTypeUnlocked, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
        partModuleType = [ Antenna, Generator ], deterministic = True
    
    CelestialBodyCoverage_1
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    

Output log:
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_InnerPlanetRelay': Error parsing targetBody
[EXCEPTION] ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ListExpressionParser`1[CelestialBody].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseStatement[CelestialBody] (System.Collections.Generic.List`1 lval) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet
.............* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_InnerPlanetRelay': Error parsing isMoho
[EXCEPTION] System.MissingMethodException: Cannot find method 'Name' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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.Boolean].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet.Name() == "Moho" || @targetPlanet.Name() == "Mercury"
...................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Boolean] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Boolean defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_InnerPlanetRelay': Error parsing isDuna
[EXCEPTION] System.MissingMethodException: Cannot find method 'Name' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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.Boolean].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet.Name() == "Duna" || @targetPlanet.Name() == "Mars"
...................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Boolean] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Boolean defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_InnerPlanetRelay': Error parsing isEve
[EXCEPTION] System.MissingMethodException: Cannot find method 'Name' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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.Boolean].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet.Name() == "Eve"
...................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Boolean] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Boolean defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_InnerPlanetRelay': Error parsing isVenus
[EXCEPTION] System.MissingMethodException: Cannot find method 'Name' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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.Boolean].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet.Name() == "Venus"
...................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Boolean] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Boolean defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.InvalidParameterFactory: CONTRACT_TYPE 'RT_InnerPlanetRelay', PARAMETER 'CoverageParameter' of type 'CelestialBodyCoverage': Error parsing targetBody
[EXCEPTION] ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ListExpressionParser`1[CelestialBody].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseStatement[CelestialBody] (System.Collections.Generic.List`1 lval) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@/targetPlanet
..............* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[WARNING] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_InnerPlanetRelay': unexpected child node 'DATA_EXPAND' found, ignored.
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'RT_InnerPlanetRelay'
 

RT_InnerSat.log

Spoiler

Debug information for CONTRACT_TYPE 'RT_InnerSat':

Configuration:
CONTRACT_TYPE
{
    advanceFunds = 40000.0 + 5000.0 * @targetBodies.Count()
    rewardFunds = @advanceFunds * 3.0
    rewardReputation = 10.0
    maxCompletions = 1
    agent = Communication Satellite Group
    targetBody = HomeWorld()
    prestige = Trivial
    group = RemoteTech
    completedMessage = The satellite is up and transmitting, and our shake-out testing is complete!
    synopsis = Launch a satellite with enough range for the inner planets and point it towards one of them.  Make sure it has connectivity back to mission control.
    description = We'd like to know what's out there, and the first step is setting up a satellite or two with one of the new larger dishes.
    title = Communication satellite for inner planets
    sortKey = 02.00
    name = RT_InnerSat
    DATA
    {
        targetSMA = @sma * 1.55
        sma = @targetBody.SemiMajorAxis()
        type = double
    }
    DATA
    {
        targetBodies = AllBodies().Where(cb => cb.SemiMajorAxis() < @targetSMA && cb.IsPlanet() && cb != HomeWorld())
        type = List<CelestialBody>
    }
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        define = Large CommSat I
        type = VesselParameterGroup
        name = InnerSatI
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            situation = ORBITING
            type = ReachState
            name = ReachState
        }
        PARAMETER
        {
            targetBody = @/targetBody
            disableOnStateChange = false
            title = Point a dish at ONE of the inner planets
            type = Any
            name = InnerTarget
            PARAMETER
            {
                iteratorCount = @ITERATOR/target.Count()
                target = @ITERATOR/target.ElementAt(IteratorCurrentIndex())
                targetBody = @target
                antennaType = Dish
                type = HasAntenna
                name = HasAntenna
                ITERATOR
                {
                    target = @/targetBodies
                    type = CelestialBody
                }
            }
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        completionText = Shake-out testing completed
        waitingText = Performing shake-out testing
        preWaitText = Testing time after network up
        duration = 4d
        type = Duration
        name = Duration
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        title = There must be an inner planet without coverage
        hideChildren = true
        type = Any
        name = Coverage
        REQUIREMENT
        {
            maxCoverage = 0.2
            minCoverage = 0.0
            targetBody = @/targetBodies.ElementAt(0)
            type = CelestialBodyCoverage
            name = CelestialBodyCoverage
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(1)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 1
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(2)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 2
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(3)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 3
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(4)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 4
                type = Expression
            }
        }
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        type = Any
        name = CommDish
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = commDish
            type = PartUnlocked
            name = PartUnlocked
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = RTLongDish2
            type = PartUnlocked
            name = PartUnlocked
        }
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        partModuleType = Generator
        type = PartModuleTypeUnlocked
        name = PartModuleTypeUnlocked
    }
}

Data Nodes:
RT_InnerSat
    RemoteTech:name = RemoteTech, deterministic = True
    RemoteTech:displayName = RemoteTech, deterministic = True
    RemoteTech:minVersion = 1.15.0, deterministic = True
    RemoteTech:maxCompletions = 0, deterministic = True
    RemoteTech:maxSimultaneous = 0, deterministic = True
    RemoteTech:disabledContractType = [], deterministic = True
    RemoteTech:agent = Contracts.Agents.Agent, deterministic = True
    RemoteTech:sortKey = RemoteTech, deterministic = True
    RemoteTech:tip = Launching CommSats..., deterministic = True
    name = RT_InnerSat, deterministic = True
    trace = False, deterministic = True
    title = Communication satellite for inner planets, deterministic = True
    tag = , deterministic = True
    description = We'd like to know what's out there, and the first step is setting up a satellite or two with one of the new larger dishes., deterministic = True
    topic = , deterministic = True
    subject = , deterministic = True
    notes = null, deterministic = True
    synopsis = Launch a satellite with enough range for the inner planets and point it towards one of them.  Make sure it has connectivity back to mission control., deterministic = True
    completedMessage = The satellite is up and transmitting, and our shake-out testing is complete!, deterministic = True
    agent = Contracts.Agents.Agent, deterministic = True
    minExpiry = 5, deterministic = True
    maxExpiry = 100, deterministic = True
    deadline = 0, deterministic = True
    cancellable = True, deterministic = True
    declinable = True, deterministic = True
    autoAccept = False, deterministic = True
    prestige = [ Trivial ], deterministic = True
    targetBody = Kerbin (CelestialBody), deterministic = True
    maxCompletions = 1, deterministic = True
    maxSimultaneous = 0, deterministic = True
    rewardFunds = 165000, deterministic = True
    rewardReputation = 10, deterministic = True
    rewardScience = 0, deterministic = True
    failureFunds = 0, deterministic = True
    failureReputation = 0, deterministic = True
    advanceFunds = 55000, deterministic = True
    sma = 13599840256, deterministic = True
    targetSMA = 21079752396.8, deterministic = True
    targetBodies = [ Moho (CelestialBody), Eve (CelestialBody), Duna (CelestialBody) ], deterministic = True
    genericTitle = Communication satellite for inner planets, deterministic = True
    genericDescription = We'd like to know what's out there, and the first step is setting up a satellite or two with one of the new larger dishes., deterministic = True
    sortKey = 02.00, deterministic = True

    InnerSatI
        type = VesselParameterGroup, deterministic = True
        name = InnerSatI, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = Large CommSat I, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        ReachState
            type = ReachState, deterministic = True
            name = ReachState, deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            failWhenUnmet = False, deterministic = True
            biome = null, deterministic = True
            situation = [ ORBITING ], deterministic = True
            minAltitude = -3.402823E+38, deterministic = True
            maxAltitude = 3.402823E+38, deterministic = True
            minTerrainAltitude = 0, deterministic = True
            maxTerrainAltitude = 3.402823E+38, deterministic = True
            minSpeed = 0, deterministic = True
            maxSpeed = 1.79769313486232E+308, deterministic = True
            minRateOfClimb = -1.79769313486232E+308, deterministic = True
            maxRateOfClimb = 1.79769313486232E+308, deterministic = True
            minAcceleration = 0, deterministic = True
            maxAcceleration = 3.402823E+38, deterministic = True
            targetBody = [ Kerbin (CelestialBody) ], deterministic = True
        
        InnerTarget
            type = Any, deterministic = True
            name = InnerTarget, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = False, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = Point a dish at ONE of the inner planets, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
            HasAntenna
                type = HasAntenna, deterministic = True
                name = HasAntenna, deterministic = True
                targetBody = Moho (CelestialBody), deterministic = False
                rewardFunds = 0, deterministic = True
                rewardReputation = 0, deterministic = True
                rewardScience = 0, deterministic = True
                failureFunds = 0, deterministic = True
                failureReputation = 0, deterministic = True
                optional = False, deterministic = True
                disableOnStateChange = null, deterministic = True
                completeInSequence = False, deterministic = True
                hidden = False, deterministic = True
                hideChildren = False, deterministic = True
                title = null, deterministic = True
                notes = null, deterministic = True
                completedMessage = null, deterministic = True
                minAntennaPower = 0, deterministic = True
                maxAntennaPower = 1.79769313486232E+308, deterministic = True
                antennaType = TRANSMIT, deterministic = True
                iteratorCount = 3, deterministic = True
                target = Moho (CelestialBody), deterministic = False
            
                ITERATOR
                    type = CelestialBody, deterministic = True
                    target = [ Moho (CelestialBody), Eve (CelestialBody), Duna (CelestialBody) ], deterministic = True
                
    Duration
        type = Duration, deterministic = True
        name = Duration, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 4 days, deterministic = True
        preWaitText = Testing time after network up, deterministic = True
        waitingText = Performing shake-out testing, deterministic = True
        completionText = Shake-out testing completed, deterministic = True
        startCriteria = CONTRACT_ACCEPTANCE, deterministic = True
        parameter = [], deterministic = True
    
    Coverage
        type = Any, deterministic = True
        name = Coverage, deterministic = True
        title = There must be an inner planet without coverage, deterministic = True
        hideChildren = True, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
        CelestialBodyCoverage
            type = CelestialBodyCoverage, deterministic = True
            name = CelestialBodyCoverage, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Moho (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
        All
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Eve (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = True, deterministic = True
            
        All_1
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Duna (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = True, deterministic = True
            
        All_2
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
        All_3
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
    CommDish
        type = Any, deterministic = True
        name = CommDish, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
        PartUnlocked
            type = PartUnlocked, deterministic = True
            name = PartUnlocked, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ commDish ], deterministic = True
        
        PartUnlocked_1
            type = PartUnlocked, deterministic = True
            name = PartUnlocked, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ RTLongDish2 ], deterministic = True
        
    PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked, deterministic = True
        name = PartModuleTypeUnlocked, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
        partModuleType = [ Generator ], deterministic = True
    

Output log:
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'RT_InnerSat'
 

RT_KerbinRelay.log

Spoiler

Debug information for CONTRACT_TYPE 'RT_KerbinRelay':

Configuration:
CONTRACT_TYPE
{
    advanceFunds = 60000.0
    rewardFunds = @advanceFunds * 3.0
    rewardReputation = 10.0
    maxCompletions = 1
    agent = Communication Satellite Group
    targetBody = HomeWorld()
    prestige = Significant
    group = RemoteTech
    notes = A three satellite network must have a minimum periapsis of @/CommSat1/Orbit/minPeA.Print() m.  Note that this is the bare minimum numbers to have visibility, it is recommended to use higher orbits to give a larger margin of error.
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!
    synopsis = Build a communication network with three commsats that has continuous connectivity to mission control.

Also, make sure to only accept either the three or four satellite version of this contract (it's impossible to complete both).
    description = Mission control is tired of losing vessels and probes over the horizon, since they are rarely heard from again.  We need to find a way to stay in constant communication if we have any hope of truly exploring @targetBody.Children().First() and beyond.
    title = Create a network for @targetBody (3 satellites)
    sortKey = 00.00.FirstRelay
    name = RT_KerbinRelay
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        define = CommSat I
        type = VesselParameterGroup
        name = CommSat1
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat II
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat III
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            maxInclination = 1
            maxEccentricity = 0.004
            minPeA = @/targetBody.Radius()
            type = Orbit
            name = Orbit
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        define = CommSat II
        type = VesselParameterGroup
        name = CommSat2
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat I
            type = VesselConnectivity
            name = VesselConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat III
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            maxInclination = 1
            maxEccentricity = 0.004
            minPeA = @/targetBody.Radius()
            type = Orbit
            name = Orbit
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        define = CommSat III
        type = VesselParameterGroup
        name = CommSat3
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat I
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat II
            type = VesselConnectivity
            name = VesselConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            maxInclination = 1
            maxEccentricity = 0.004
            minPeA = @/targetBody.Radius()
            type = Orbit
            name = Orbit
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        completionText = Shake-out testing completed
        waitingText = Performing shake-out testing
        preWaitText = Testing time after network up
        duration = 2d
        type = Duration
        name = Duration
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        maxCoverage = 0.6
        minCoverage = 0.0
        type = CelestialBodyCoverage
        name = CelestialBodyCoverage
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        partModuleType = Generator
        partModuleType = Antenna
        type = PartModuleTypeUnlocked
        name = PartModuleTypeUnlocked
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        contractType = RT_KerbinRelay_4sat
        invertRequirement = true
        type = AcceptContract
        name = AcceptContract
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        contractType = RT_KerbinRelay_4sat
        invertRequirement = true
        type = CompleteContract
        name = CompleteContract
    }
}

Data Nodes:
RT_KerbinRelay
    RemoteTech:name = RemoteTech, deterministic = True
    RemoteTech:displayName = RemoteTech, deterministic = True
    RemoteTech:minVersion = 1.15.0, deterministic = True
    RemoteTech:maxCompletions = 0, deterministic = True
    RemoteTech:maxSimultaneous = 0, deterministic = True
    RemoteTech:disabledContractType = [], deterministic = True
    RemoteTech:agent = Contracts.Agents.Agent, deterministic = True
    RemoteTech:sortKey = RemoteTech, deterministic = True
    RemoteTech:tip = Launching CommSats..., deterministic = True
    name = RT_KerbinRelay, deterministic = True
    trace = False, deterministic = True
    title = Create a network for Kerbin (3 satellites), deterministic = True
    tag = , deterministic = True
    description = Mission control is tired of losing vessels and probes over the horizon, since they are rarely heard from again.  We need to find a way to stay in constant communication if we have any hope of truly exploring the Mun and beyond., deterministic = True
    topic = , deterministic = True
    subject = , deterministic = True
    notes = A three satellite network must have a minimum periapsis of 600,000.00 m.  Note that this is the bare minimum numbers to have visibility, it is recommended to use higher orbits to give a larger margin of error., deterministic = True
    synopsis = Build a communication network with three commsats that has continuous connectivity to mission control.

Also, make sure to only accept either the three or four satellite version of this contract (it's impossible to complete both)., deterministic = True
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!, deterministic = True
    agent = Contracts.Agents.Agent, deterministic = True
    minExpiry = 5, deterministic = True
    maxExpiry = 100, deterministic = True
    deadline = 0, deterministic = True
    cancellable = True, deterministic = True
    declinable = True, deterministic = True
    autoAccept = False, deterministic = True
    prestige = [ Significant ], deterministic = True
    targetBody = Kerbin (CelestialBody), deterministic = True
    maxCompletions = 1, deterministic = True
    maxSimultaneous = 0, deterministic = True
    rewardFunds = 180000, deterministic = True
    rewardReputation = 10, deterministic = True
    rewardScience = 0, deterministic = True
    failureFunds = 0, deterministic = True
    failureReputation = 0, deterministic = True
    advanceFunds = 60000, deterministic = True
    genericTitle = Create a network for Kerbin (3 satellites), deterministic = True
    genericDescription = Mission control is tired of losing vessels and probes over the horizon, since they are rarely heard from again.  We need to find a way to stay in constant communication if we have any hope of truly exploring the Mun and beyond., deterministic = True
    sortKey = 00.00.FirstRelay, deterministic = True

    CommSat1
        type = VesselParameterGroup, deterministic = True
        name = CommSat1, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = CommSat I, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        IsNotVessel
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat II, deterministic = True
        
        IsNotVessel_1
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat III, deterministic = True
        
        Orbit
            type = Orbit, deterministic = True
            name = Orbit, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            situation = ORBITING, deterministic = True
            minAltitude = 0, deterministic = True
            maxAltitude = 1.79769313486232E+308, deterministic = True
            minApA = 0, deterministic = True
            maxApA = 1.79769313486232E+308, deterministic = True
            minPeA = 600000, deterministic = True
            maxPeA = 1.79769313486232E+308, deterministic = True
            minEccentricity = 0, deterministic = True
            maxEccentricity = 0.004, deterministic = True
            minInclination = 0, deterministic = True
            maxInclination = 1, deterministic = True
            minArgumentOfPeriapsis = 0, deterministic = True
            maxArgumentOfPeriapsis = 360, deterministic = True
            minPeriod = 00:00:00, deterministic = True
            maxPeriod = -2147483648 years, -2147483648 days, -2147483648:-2147483648:-2147483648, deterministic = True
        
    CommSat2
        type = VesselParameterGroup, deterministic = True
        name = CommSat2, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = CommSat II, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        VesselConnectivity
            type = VesselConnectivity, deterministic = True
            name = VesselConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        IsNotVessel
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat III, deterministic = True
        
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        Orbit
            type = Orbit, deterministic = True
            name = Orbit, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            situation = ORBITING, deterministic = True
            minAltitude = 0, deterministic = True
            maxAltitude = 1.79769313486232E+308, deterministic = True
            minApA = 0, deterministic = True
            maxApA = 1.79769313486232E+308, deterministic = True
            minPeA = 600000, deterministic = True
            maxPeA = 1.79769313486232E+308, deterministic = True
            minEccentricity = 0, deterministic = True
            maxEccentricity = 0.004, deterministic = True
            minInclination = 0, deterministic = True
            maxInclination = 1, deterministic = True
            minArgumentOfPeriapsis = 0, deterministic = True
            maxArgumentOfPeriapsis = 360, deterministic = True
            minPeriod = 00:00:00, deterministic = True
            maxPeriod = -2147483648 years, -2147483648 days, -2147483648:-2147483648:-2147483648, deterministic = True
        
    CommSat3
        type = VesselParameterGroup, deterministic = True
        name = CommSat3, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = CommSat III, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        IsNotVessel
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat I, deterministic = True
        
        VesselConnectivity
            type = VesselConnectivity, deterministic = True
            name = VesselConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        Orbit
            type = Orbit, deterministic = True
            name = Orbit, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            situation = ORBITING, deterministic = True
            minAltitude = 0, deterministic = True
            maxAltitude = 1.79769313486232E+308, deterministic = True
            minApA = 0, deterministic = True
            maxApA = 1.79769313486232E+308, deterministic = True
            minPeA = 600000, deterministic = True
            maxPeA = 1.79769313486232E+308, deterministic = True
            minEccentricity = 0, deterministic = True
            maxEccentricity = 0.004, deterministic = True
            minInclination = 0, deterministic = True
            maxInclination = 1, deterministic = True
            minArgumentOfPeriapsis = 0, deterministic = True
            maxArgumentOfPeriapsis = 360, deterministic = True
            minPeriod = 00:00:00, deterministic = True
            maxPeriod = -2147483648 years, -2147483648 days, -2147483648:-2147483648:-2147483648, deterministic = True
        
    Duration
        type = Duration, deterministic = True
        name = Duration, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 2 days, deterministic = True
        preWaitText = Testing time after network up, deterministic = True
        waitingText = Performing shake-out testing, deterministic = True
        completionText = Shake-out testing completed, deterministic = True
        startCriteria = CONTRACT_ACCEPTANCE, deterministic = True
        parameter = [], deterministic = True
    
    CelestialBodyCoverage
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
    PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked, deterministic = True
        name = PartModuleTypeUnlocked, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
        partModuleType = [ Antenna, Generator ], deterministic = True
    
    AcceptContract
        type = AcceptContract, deterministic = True
        name = AcceptContract, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = True, deterministic = True
        contractType = RT_KerbinRelay_4sat, deterministic = True
        minCount = 1, deterministic = True
        maxCount = 4294967295, deterministic = True
    
    CompleteContract
        type = CompleteContract, deterministic = True
        name = CompleteContract, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = True, deterministic = True
        contractType = RT_KerbinRelay_4sat, deterministic = True
        minCount = 1, deterministic = True
        maxCount = 4294967295, deterministic = True
        cooldownDuration = 00:00:00, deterministic = True
    

Output log:
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'RT_KerbinRelay'
 

RT_KerbinRelay_4sat.log

Spoiler

Debug information for CONTRACT_TYPE 'RT_KerbinRelay_4sat':

Configuration:
CONTRACT_TYPE
{
    advanceFunds = 80000.0
    rewardFunds = @advanceFunds * 3.0
    rewardReputation = 13.0
    maxCompletions = 1
    agent = Communication Satellite Group
    targetBody = HomeWorld()
    prestige = Significant
    group = RemoteTech
    notes = A four satellite network must have a minimum periapsis of @/CommSat1/Orbit/minPeA.Print() m.  Note that this is the bare minimum numbers to have visibility, it is recommended to use higher orbits to give a larger margin of error.
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!
    synopsis = Build a communication network with four commsats that has continuous connectivity to mission control.

Also, make sure to only accept either the three or four satellite version of this contract (it's impossible to complete both).
    description = Mission control is tired of losing vessels and probes over the horizon, since they are rarely heard from again.  We need to find a way to stay in constant communication if we have any hope of truly exploring @targetBody.Children().First() and beyond.
    title = Create a network for @targetBody (4 satellites)
    sortKey = 00.01.FirstRelay
    name = RT_KerbinRelay_4sat
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        define = CommSat I
        type = VesselParameterGroup
        name = CommSat1
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat II
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat III
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat IV
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            maxInclination = 1
            maxEccentricity = 0.004
            minPeA = @/targetBody.Radius() * 0.4142135623730950488016887242097
            type = Orbit
            name = Orbit
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        define = CommSat II
        type = VesselParameterGroup
        name = CommSat2
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat I
            type = VesselConnectivity
            name = VesselConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat III
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat IV
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            maxInclination = 1
            maxEccentricity = 0.004
            minPeA = @/targetBody.Radius() * 0.4142135623730950488016887242097
            type = Orbit
            name = Orbit
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        define = CommSat III
        type = VesselParameterGroup
        name = CommSat3
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat I
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat II
            type = VesselConnectivity
            name = VesselConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat IV
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            maxInclination = 1
            maxEccentricity = 0.004
            minPeA = @/targetBody.Radius() * 0.4142135623730950488016887242097
            type = Orbit
            name = Orbit
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        define = CommSat IV
        type = VesselParameterGroup
        name = CommSat4
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat I
            type = VesselConnectivity
            name = VesselConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat II
            type = IsNotVessel
            name = IsNotVessel
        }
        PARAMETER
        {
            targetBody = @/targetBody
            vessel = CommSat III
            type = VesselConnectivity
            name = VesselConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            maxInclination = 1
            maxEccentricity = 0.004
            minPeA = @/targetBody.Radius() * 0.4142135623730950488016887242097
            type = Orbit
            name = Orbit
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        completionText = Shake-out testing completed
        waitingText = Performing shake-out testing
        preWaitText = Testing time after network up
        duration = 2d
        type = Duration
        name = Duration
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        maxCoverage = 0.6
        minCoverage = 0.0
        type = CelestialBodyCoverage
        name = CelestialBodyCoverage
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        partModuleType = Generator
        partModuleType = Antenna
        type = PartModuleTypeUnlocked
        name = PartModuleTypeUnlocked
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        contractType = RT_KerbinRelay
        invertRequirement = true
        type = AcceptContract
        name = AcceptContract
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        contractType = RT_KerbinRelay
        invertRequirement = true
        type = CompleteContract
        name = CompleteContract
    }
}

Data Nodes:
RT_KerbinRelay_4sat
    RemoteTech:name = RemoteTech, deterministic = True
    RemoteTech:displayName = RemoteTech, deterministic = True
    RemoteTech:minVersion = 1.15.0, deterministic = True
    RemoteTech:maxCompletions = 0, deterministic = True
    RemoteTech:maxSimultaneous = 0, deterministic = True
    RemoteTech:disabledContractType = [], deterministic = True
    RemoteTech:agent = Contracts.Agents.Agent, deterministic = True
    RemoteTech:sortKey = RemoteTech, deterministic = True
    RemoteTech:tip = Launching CommSats..., deterministic = True
    name = RT_KerbinRelay_4sat, deterministic = True
    trace = False, deterministic = True
    title = Create a network for Kerbin (4 satellites), deterministic = True
    tag = , deterministic = True
    description = Mission control is tired of losing vessels and probes over the horizon, since they are rarely heard from again.  We need to find a way to stay in constant communication if we have any hope of truly exploring the Mun and beyond., deterministic = True
    topic = , deterministic = True
    subject = , deterministic = True
    notes = A four satellite network must have a minimum periapsis of 248,528.14 m.  Note that this is the bare minimum numbers to have visibility, it is recommended to use higher orbits to give a larger margin of error., deterministic = True
    synopsis = Build a communication network with four commsats that has continuous connectivity to mission control.

Also, make sure to only accept either the three or four satellite version of this contract (it's impossible to complete both)., deterministic = True
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!, deterministic = True
    agent = Contracts.Agents.Agent, deterministic = True
    minExpiry = 5, deterministic = True
    maxExpiry = 100, deterministic = True
    deadline = 0, deterministic = True
    cancellable = True, deterministic = True
    declinable = True, deterministic = True
    autoAccept = False, deterministic = True
    prestige = [ Significant ], deterministic = True
    targetBody = Kerbin (CelestialBody), deterministic = True
    maxCompletions = 1, deterministic = True
    maxSimultaneous = 0, deterministic = True
    rewardFunds = 240000, deterministic = True
    rewardReputation = 13, deterministic = True
    rewardScience = 0, deterministic = True
    failureFunds = 0, deterministic = True
    failureReputation = 0, deterministic = True
    advanceFunds = 80000, deterministic = True
    genericTitle = Create a network for Kerbin (4 satellites), deterministic = True
    genericDescription = Mission control is tired of losing vessels and probes over the horizon, since they are rarely heard from again.  We need to find a way to stay in constant communication if we have any hope of truly exploring the Mun and beyond., deterministic = True
    sortKey = 00.01.FirstRelay, deterministic = True

    CommSat1
        type = VesselParameterGroup, deterministic = True
        name = CommSat1, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = CommSat I, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        IsNotVessel
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat II, deterministic = True
        
        IsNotVessel_1
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat III, deterministic = True
        
        IsNotVessel_2
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat IV, deterministic = True
        
        Orbit
            type = Orbit, deterministic = True
            name = Orbit, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            situation = ORBITING, deterministic = True
            minAltitude = 0, deterministic = True
            maxAltitude = 1.79769313486232E+308, deterministic = True
            minApA = 0, deterministic = True
            maxApA = 1.79769313486232E+308, deterministic = True
            minPeA = 248528.137423857, deterministic = True
            maxPeA = 1.79769313486232E+308, deterministic = True
            minEccentricity = 0, deterministic = True
            maxEccentricity = 0.004, deterministic = True
            minInclination = 0, deterministic = True
            maxInclination = 1, deterministic = True
            minArgumentOfPeriapsis = 0, deterministic = True
            maxArgumentOfPeriapsis = 360, deterministic = True
            minPeriod = 00:00:00, deterministic = True
            maxPeriod = -2147483648 years, -2147483648 days, -2147483648:-2147483648:-2147483648, deterministic = True
        
    CommSat2
        type = VesselParameterGroup, deterministic = True
        name = CommSat2, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = CommSat II, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        VesselConnectivity
            type = VesselConnectivity, deterministic = True
            name = VesselConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        IsNotVessel
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat III, deterministic = True
        
        IsNotVessel_1
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat IV, deterministic = True
        
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        Orbit
            type = Orbit, deterministic = True
            name = Orbit, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            situation = ORBITING, deterministic = True
            minAltitude = 0, deterministic = True
            maxAltitude = 1.79769313486232E+308, deterministic = True
            minApA = 0, deterministic = True
            maxApA = 1.79769313486232E+308, deterministic = True
            minPeA = 248528.137423857, deterministic = True
            maxPeA = 1.79769313486232E+308, deterministic = True
            minEccentricity = 0, deterministic = True
            maxEccentricity = 0.004, deterministic = True
            minInclination = 0, deterministic = True
            maxInclination = 1, deterministic = True
            minArgumentOfPeriapsis = 0, deterministic = True
            maxArgumentOfPeriapsis = 360, deterministic = True
            minPeriod = 00:00:00, deterministic = True
            maxPeriod = -2147483648 years, -2147483648 days, -2147483648:-2147483648:-2147483648, deterministic = True
        
    CommSat3
        type = VesselParameterGroup, deterministic = True
        name = CommSat3, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = CommSat III, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        IsNotVessel
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat I, deterministic = True
        
        VesselConnectivity
            type = VesselConnectivity, deterministic = True
            name = VesselConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        IsNotVessel_1
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat IV, deterministic = True
        
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        Orbit
            type = Orbit, deterministic = True
            name = Orbit, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            situation = ORBITING, deterministic = True
            minAltitude = 0, deterministic = True
            maxAltitude = 1.79769313486232E+308, deterministic = True
            minApA = 0, deterministic = True
            maxApA = 1.79769313486232E+308, deterministic = True
            minPeA = 248528.137423857, deterministic = True
            maxPeA = 1.79769313486232E+308, deterministic = True
            minEccentricity = 0, deterministic = True
            maxEccentricity = 0.004, deterministic = True
            minInclination = 0, deterministic = True
            maxInclination = 1, deterministic = True
            minArgumentOfPeriapsis = 0, deterministic = True
            maxArgumentOfPeriapsis = 360, deterministic = True
            minPeriod = 00:00:00, deterministic = True
            maxPeriod = -2147483648 years, -2147483648 days, -2147483648:-2147483648:-2147483648, deterministic = True
        
    CommSat4
        type = VesselParameterGroup, deterministic = True
        name = CommSat4, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = CommSat IV, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        VesselConnectivity
            type = VesselConnectivity, deterministic = True
            name = VesselConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        IsNotVessel
            type = IsNotVessel, deterministic = True
            name = IsNotVessel, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            vessel = CommSat II, deterministic = True
        
        VesselConnectivity_1
            type = VesselConnectivity, deterministic = True
            name = VesselConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        Orbit
            type = Orbit, deterministic = True
            name = Orbit, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            situation = ORBITING, deterministic = True
            minAltitude = 0, deterministic = True
            maxAltitude = 1.79769313486232E+308, deterministic = True
            minApA = 0, deterministic = True
            maxApA = 1.79769313486232E+308, deterministic = True
            minPeA = 248528.137423857, deterministic = True
            maxPeA = 1.79769313486232E+308, deterministic = True
            minEccentricity = 0, deterministic = True
            maxEccentricity = 0.004, deterministic = True
            minInclination = 0, deterministic = True
            maxInclination = 1, deterministic = True
            minArgumentOfPeriapsis = 0, deterministic = True
            maxArgumentOfPeriapsis = 360, deterministic = True
            minPeriod = 00:00:00, deterministic = True
            maxPeriod = -2147483648 years, -2147483648 days, -2147483648:-2147483648:-2147483648, deterministic = True
        
    Duration
        type = Duration, deterministic = True
        name = Duration, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 2 days, deterministic = True
        preWaitText = Testing time after network up, deterministic = True
        waitingText = Performing shake-out testing, deterministic = True
        completionText = Shake-out testing completed, deterministic = True
        startCriteria = CONTRACT_ACCEPTANCE, deterministic = True
        parameter = [], deterministic = True
    
    CelestialBodyCoverage
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
    PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked, deterministic = True
        name = PartModuleTypeUnlocked, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
        partModuleType = [ Antenna, Generator ], deterministic = True
    
    AcceptContract
        type = AcceptContract, deterministic = True
        name = AcceptContract, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = True, deterministic = True
        contractType = RT_KerbinRelay, deterministic = True
        minCount = 1, deterministic = True
        maxCount = 4294967295, deterministic = True
    
    CompleteContract
        type = CompleteContract, deterministic = True
        name = CompleteContract, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = True, deterministic = True
        contractType = RT_KerbinRelay, deterministic = True
        minCount = 1, deterministic = True
        maxCount = 4294967295, deterministic = True
        cooldownDuration = 00:00:00, deterministic = True
    

Output log:
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'RT_KerbinRelay_4sat'
 

RT_MoonDish.log

Spoiler

Debug information for CONTRACT_TYPE 'RT_MoonDish':

Configuration:
CONTRACT_TYPE
{
    advanceFunds = 5000.0
    rewardFunds = @advanceFunds * 3.0
    rewardReputation = 1.0
    maxCompletions = 1
    agent = Communication Satellite Group
    targetBody = HomeWorld()
    prestige = Trivial
    group = RemoteTech
    completedMessage = We've got a signal bouncing back, good job!
    synopsis = @moonCount > 1 ? @synopsisMany : @synopsisOne
    description = @moonCount > 1 ? @descMany : @descOne
    title = Point a dish out from @targetBody
    sortKey = 01.00
    name = RT_MoonDish
    DATA
    {
        moonCount = @targetBody.Children().Count()
        type = int
    }
    DATA
    {
        synopsisMany = Point a dish at one of our moons!
        synopsisOne = Point a dish at @firstMoon!
        descMany = We'd like you to point a dish at one of @targetBody's moons so we can start sending some probes that way!
        descOne = We'd like you to point a dish at @firstMoon so we can start sending some probes that way!
        type = string
    }
    DATA
    {
        firstMoon = @/targetBody.Children().First()
        type = CelestialBody
    }
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        type = VesselParameterGroup
        name = MunSat
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            situation = ORBITING
            type = ReachState
            name = ReachState
        }
        PARAMETER
        {
            targetBody = @/firstMoon
            antennaType = Dish
            type = HasAntenna
            name = HasAntenna
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/moonCount == 1
                type = Expression
            }
        }
        PARAMETER
        {
            targetBody = @/targetBody
            disableOnStateChange = false
            title = Point a Dish at one of @/targetBody's moons
            type = Any
            name = InnerTarget
            PARAMETER
            {
                targetBody = @/firstMoon
                antennaType = Dish
                type = HasAntenna
                name = HasAntenna
            }
            PARAMETER
            {
                targetBody = @/targetBody.Children().ElementAt(1)
                antennaType = Dish
                type = HasAntenna
                name = HasAntenna
            }
            PARAMETER
            {
                targetBody = @/targetBody.Children().ElementAt(2)
                antennaType = Dish
                type = HasAntenna
                name = HasAntenna
                REQUIREMENT
                {
                    targetBody = @/targetBody
                    expression = @/moonCount > 2
                    type = Expression
                }
            }
            PARAMETER
            {
                targetBody = @/targetBody.Children().ElementAt(3)
                antennaType = Dish
                type = HasAntenna
                name = HasAntenna
                REQUIREMENT
                {
                    targetBody = @/targetBody
                    expression = @/moonCount > 3
                    type = Expression
                }
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/moonCount > 1
                type = Expression
            }
        }
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        title = Must not have any moons with greater than 20% communication coverage
        expression = HomeWorld().Children().Where(cb => cb.RemoteTechCoverage() < 0.2).Count() > 0
        type = Expression
        name = Coverage
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        partModuleType = Generator
        partModuleType = Antenna
        type = PartModuleTypeUnlocked
        name = PartModuleTypeUnlocked
    }
}

Data Nodes:
RT_MoonDish
    RemoteTech:name = RemoteTech, deterministic = True
    RemoteTech:displayName = RemoteTech, deterministic = True
    RemoteTech:minVersion = 1.15.0, deterministic = True
    RemoteTech:maxCompletions = 0, deterministic = True
    RemoteTech:maxSimultaneous = 0, deterministic = True
    RemoteTech:disabledContractType = [], deterministic = True
    RemoteTech:agent = Contracts.Agents.Agent, deterministic = True
    RemoteTech:sortKey = RemoteTech, deterministic = True
    RemoteTech:tip = Launching CommSats..., deterministic = True
    name = RT_MoonDish, deterministic = True
    trace = False, deterministic = True
    title = Point a dish out from Kerbin, deterministic = True
    tag = , deterministic = True
    description = We'd like you to point a dish at one of Kerbin's moons so we can start sending some probes that way!, deterministic = True
    topic = , deterministic = True
    subject = , deterministic = True
    notes = null, deterministic = True
    synopsis = Point a dish at one of our moons!, deterministic = True
    completedMessage = We've got a signal bouncing back, good job!, deterministic = True
    agent = Contracts.Agents.Agent, deterministic = True
    minExpiry = 5, deterministic = True
    maxExpiry = 100, deterministic = True
    deadline = 0, deterministic = True
    cancellable = True, deterministic = True
    declinable = True, deterministic = True
    autoAccept = False, deterministic = True
    prestige = [ Trivial ], deterministic = True
    targetBody = Kerbin (CelestialBody), deterministic = True
    maxCompletions = 1, deterministic = True
    maxSimultaneous = 0, deterministic = True
    rewardFunds = 15000, deterministic = True
    rewardReputation = 1, deterministic = True
    rewardScience = 0, deterministic = True
    failureFunds = 0, deterministic = True
    failureReputation = 0, deterministic = True
    advanceFunds = 5000, deterministic = True
    moonCount = 2, deterministic = True
    descOne = We'd like you to point a dish at the Mun so we can start sending some probes that way!, deterministic = True
    descMany = We'd like you to point a dish at one of Kerbin's moons so we can start sending some probes that way!, deterministic = True
    synopsisOne = Point a dish at the Mun!, deterministic = True
    synopsisMany = Point a dish at one of our moons!, deterministic = True
    firstMoon = Mun (CelestialBody), deterministic = True
    genericTitle = Point a dish out from Kerbin, deterministic = True
    genericDescription = We'd like you to point a dish at one of Kerbin's moons so we can start sending some probes that way!, deterministic = True
    sortKey = 01.00, deterministic = True

    MunSat
        type = VesselParameterGroup, deterministic = True
        name = MunSat, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = null, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        ReachState
            type = ReachState, deterministic = True
            name = ReachState, deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            failWhenUnmet = False, deterministic = True
            biome = null, deterministic = True
            situation = [ ORBITING ], deterministic = True
            minAltitude = -3.402823E+38, deterministic = True
            maxAltitude = 3.402823E+38, deterministic = True
            minTerrainAltitude = 0, deterministic = True
            maxTerrainAltitude = 3.402823E+38, deterministic = True
            minSpeed = 0, deterministic = True
            maxSpeed = 1.79769313486232E+308, deterministic = True
            minRateOfClimb = -1.79769313486232E+308, deterministic = True
            maxRateOfClimb = 1.79769313486232E+308, deterministic = True
            minAcceleration = 0, deterministic = True
            maxAcceleration = 3.402823E+38, deterministic = True
            targetBody = [ Kerbin (CelestialBody) ], deterministic = True
        
        HasAntenna
            type = HasAntenna, deterministic = True
            name = HasAntenna, deterministic = True
            targetBody = Mun (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            minAntennaPower = 0, deterministic = True
            maxAntennaPower = 1.79769313486232E+308, deterministic = True
            antennaType = TRANSMIT, deterministic = True
        
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
        InnerTarget
            type = Any, deterministic = True
            name = InnerTarget, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = False, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = Point a Dish at one of Kerbin's moons, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = True, deterministic = True
            
            HasAntenna
                type = HasAntenna, deterministic = True
                name = HasAntenna, deterministic = True
                targetBody = Mun (CelestialBody), deterministic = True
                rewardFunds = 0, deterministic = True
                rewardReputation = 0, deterministic = True
                rewardScience = 0, deterministic = True
                failureFunds = 0, deterministic = True
                failureReputation = 0, deterministic = True
                optional = False, deterministic = True
                disableOnStateChange = null, deterministic = True
                completeInSequence = False, deterministic = True
                hidden = False, deterministic = True
                hideChildren = False, deterministic = True
                title = null, deterministic = True
                notes = null, deterministic = True
                completedMessage = null, deterministic = True
                minAntennaPower = 0, deterministic = True
                maxAntennaPower = 1.79769313486232E+308, deterministic = True
                antennaType = TRANSMIT, deterministic = True
            
            HasAntenna_1
                type = HasAntenna, deterministic = True
                name = HasAntenna, deterministic = True
                targetBody = Minmus (CelestialBody), deterministic = True
                rewardFunds = 0, deterministic = True
                rewardReputation = 0, deterministic = True
                rewardScience = 0, deterministic = True
                failureFunds = 0, deterministic = True
                failureReputation = 0, deterministic = True
                optional = False, deterministic = True
                disableOnStateChange = null, deterministic = True
                completeInSequence = False, deterministic = True
                hidden = False, deterministic = True
                hideChildren = False, deterministic = True
                title = null, deterministic = True
                notes = null, deterministic = True
                completedMessage = null, deterministic = True
                minAntennaPower = 0, deterministic = True
                maxAntennaPower = 1.79769313486232E+308, deterministic = True
                antennaType = TRANSMIT, deterministic = True
            
            HasAntenna_2
                type = HasAntenna, deterministic = True
                name = HasAntenna, deterministic = True
                targetBody = null, deterministic = True
                rewardFunds = 0, deterministic = True
                rewardReputation = 0, deterministic = True
                rewardScience = 0, deterministic = True
                failureFunds = 0, deterministic = True
                failureReputation = 0, deterministic = True
                optional = False, deterministic = True
                disableOnStateChange = null, deterministic = True
                completeInSequence = False, deterministic = True
                hidden = False, deterministic = True
                hideChildren = False, deterministic = True
                title = null, deterministic = True
                notes = null, deterministic = True
                completedMessage = null, deterministic = True
                minAntennaPower = 0, deterministic = True
                maxAntennaPower = 1.79769313486232E+308, deterministic = True
                antennaType = TRANSMIT, deterministic = True
            
                Expression
                    type = Expression, deterministic = True
                    name = Expression, deterministic = True
                    title = null, deterministic = True
                    hideChildren = False, deterministic = True
                    targetBody = Kerbin (CelestialBody), deterministic = True
                    checkOnActiveContract = False, deterministic = True
                    invertRequirement = False, deterministic = True
                    expression = False, deterministic = True
                
            HasAntenna_3
                type = HasAntenna, deterministic = True
                name = HasAntenna, deterministic = True
                targetBody = null, deterministic = True
                rewardFunds = 0, deterministic = True
                rewardReputation = 0, deterministic = True
                rewardScience = 0, deterministic = True
                failureFunds = 0, deterministic = True
                failureReputation = 0, deterministic = True
                optional = False, deterministic = True
                disableOnStateChange = null, deterministic = True
                completeInSequence = False, deterministic = True
                hidden = False, deterministic = True
                hideChildren = False, deterministic = True
                title = null, deterministic = True
                notes = null, deterministic = True
                completedMessage = null, deterministic = True
                minAntennaPower = 0, deterministic = True
                maxAntennaPower = 1.79769313486232E+308, deterministic = True
                antennaType = TRANSMIT, deterministic = True
            
                Expression
                    type = Expression, deterministic = True
                    name = Expression, deterministic = True
                    title = null, deterministic = True
                    hideChildren = False, deterministic = True
                    targetBody = Kerbin (CelestialBody), deterministic = True
                    checkOnActiveContract = False, deterministic = True
                    invertRequirement = False, deterministic = True
                    expression = False, deterministic = True
                
    Coverage
        type = Expression, deterministic = True
        name = Coverage, deterministic = True
        title = Must not have any moons with greater than 20% communication coverage, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
        expression = False, deterministic = True
    
    PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked, deterministic = True
        name = PartModuleTypeUnlocked, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
        partModuleType = [ Antenna, Generator ], deterministic = True
    

Output log:
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'RT_MoonDish'
 

RT_MoonRelay.log

Spoiler

Debug information for CONTRACT_TYPE 'RT_MoonRelay':

Configuration:
CONTRACT_TYPE
{
    advanceFunds = 40000.0
    rewardFunds = @advanceFunds * 3.0
    rewardReputation = 2.0
    maxCompletions = 1
    agent = Communication Satellite Group
    targetBody = @targetMoon
    prestige = Significant
    group = RemoteTech
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!
    synopsis = Build a communication network that provides coverage of @targetBody with a link back to mission control.
    description = @isMinmus ? @descMinmus : @descDefault
    title = Create a network for @targetBody
    sortKey = 01.01
    name = RT_MoonRelay
    DATA
    {
        isMinmus = @targetBody.Name() == "Minmus"
        type = bool
    }
    DATA_EXPAND
    {
        targetMoon = HomeWorld().Children()
        type = CelestialBody
    }
    DATA
    {
        descMinmus = They say that Minmus is too small to bother with setting up a dedicated communications network.  Let's prove them wrong!
        descDefault = Mission control has decided they'd like to find out what's on the far side of @targetBody.  In order to do that, we need to set up a relay network.
        type = string
    }
    PARAMETER
    {
        targetBody = @/targetBody
        coverage = 0.95
        type = CelestialBodyCoverage
        name = MoonCoverage
    }
    PARAMETER
    {
        targetBody = @/targetBody
        completionText = Shake-out testing completed
        waitingText = Performing shake-out testing
        preWaitText = Testing time after network up
        duration = 3d
        type = Duration
        name = Duration
    }
    REQUIREMENT
    {
        maxCoverage = 1.0
        minCoverage = 0.7
        targetBody = HomeWorld()
        type = CelestialBodyCoverage
        name = CelestialBodyCoverage
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        maxCoverage = 0.7
        type = CelestialBodyCoverage
    }
    REQUIREMENT
    {
        range = @/targetBody.SemiMajorAxis()
        targetBody = HomeWorld()
        type = ActiveVesselRange
        name = ActiveVesselRange
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        partModuleType = Generator
        partModuleType = Antenna
        type = PartModuleTypeUnlocked
        name = PartModuleTypeUnlocked
    }
}

Data Nodes:
RT_MoonRelay
    RemoteTech:name = RemoteTech, deterministic = True
    RemoteTech:displayName = RemoteTech, deterministic = True
    RemoteTech:minVersion = 1.15.0, deterministic = True
    RemoteTech:maxCompletions = 0, deterministic = True
    RemoteTech:maxSimultaneous = 0, deterministic = True
    RemoteTech:disabledContractType = [], deterministic = True
    RemoteTech:agent = Contracts.Agents.Agent, deterministic = True
    RemoteTech:sortKey = RemoteTech, deterministic = True
    RemoteTech:tip = Launching CommSats..., deterministic = True
    name = RT_MoonRelay, deterministic = True
    trace = False, deterministic = True
    title = Create a network for , deterministic = True
    tag = , deterministic = True
    description = Mission control has decided they'd like to find out what's on the far side of .  In order to do that, we need to set up a relay network., deterministic = True
    topic = , deterministic = True
    subject = , deterministic = True
    notes = null, deterministic = True
    synopsis = Build a communication network that provides coverage of  with a link back to mission control., deterministic = True
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!, deterministic = True
    agent = Contracts.Agents.Agent, deterministic = True
    minExpiry = 5, deterministic = True
    maxExpiry = 100, deterministic = True
    deadline = 0, deterministic = True
    cancellable = True, deterministic = True
    declinable = True, deterministic = True
    autoAccept = False, deterministic = True
    prestige = [ Significant ], deterministic = True
    targetBody = null, deterministic = True
    maxCompletions = 1, deterministic = True
    maxSimultaneous = 0, deterministic = True
    rewardFunds = 120000, deterministic = True
    rewardReputation = 2, deterministic = True
    rewardScience = 0, deterministic = True
    failureFunds = 0, deterministic = True
    failureReputation = 0, deterministic = True
    advanceFunds = 40000, deterministic = True
    isMinmus = False, deterministic = True
    descDefault = Mission control has decided they'd like to find out what's on the far side of .  In order to do that, we need to set up a relay network., deterministic = True
    descMinmus = They say that Minmus is too small to bother with setting up a dedicated communications network.  Let's prove them wrong!, deterministic = True
    type = CelestialBody, deterministic = True
    targetMoon = [ Mun (CelestialBody), Minmus (CelestialBody) ], deterministic = True
    genericTitle = Create a network for , deterministic = True
    genericDescription = Mission control has decided they'd like to find out what's on the far side of .  In order to do that, we need to set up a relay network., deterministic = True
    sortKey = 01.01, deterministic = True

    MoonCoverage
        type = CelestialBodyCoverage, deterministic = True
        name = MoonCoverage, deterministic = True
        targetBody = null, deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
    
    Duration
        type = Duration, deterministic = True
        name = Duration, deterministic = True
        targetBody = null, deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 3 days, deterministic = True
        preWaitText = Testing time after network up, deterministic = True
        waitingText = Performing shake-out testing, deterministic = True
        completionText = Shake-out testing completed, deterministic = True
        startCriteria = CONTRACT_ACCEPTANCE, deterministic = True
        parameter = [], deterministic = True
    
    CelestialBodyCoverage
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
    CelestialBodyCoverage_1
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
    ActiveVesselRange
        type = ActiveVesselRange, deterministic = True
        name = ActiveVesselRange, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
    PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked, deterministic = True
        name = PartModuleTypeUnlocked, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
        partModuleType = [ Antenna, Generator ], deterministic = True
    

Output log:
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_MoonRelay': Error parsing targetBody
[EXCEPTION] ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ListExpressionParser`1[CelestialBody].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseStatement[CelestialBody] (System.Collections.Generic.List`1 lval) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetMoon
...........* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[WARNING] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_MoonRelay': unexpected child node 'DATA_EXPAND' found, ignored.
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'RT_MoonRelay'
 

RT_OuterPlanetRelay.log

Spoiler

Debug information for CONTRACT_TYPE 'RT_OuterPlanetRelay':

Configuration:
CONTRACT_TYPE
{
    advanceFunds = 70000.0
    rewardFunds = @advanceFunds * 3.0
    rewardReputation = 1.0
    maxCompletions = 1
    agent = Communication Satellite Group
    targetBody = @targetPlanet
    prestige = Significant
    group = RemoteTech
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!
    synopsis = Build a communication network that provides coverage of @targetBody with a link back to mission control.
    description = @isDres ? @descDres : @isEeloo ? @descEeloo : @isNeptune ? @descNeptune : @isUranus ? @descUranus : @descDefault
    title = Create a network for @targetBody
    sortKey = "03." + @targetBody.Index().ToString("D2")
    name = RT_OuterPlanetRelay
    DATA
    {
        targetSMA = @sma * 1.55
        sma = HomeWorld().SemiMajorAxis()
        type = double
    }
    DATA
    {
        descUranus = There's aren't many places colder than Uranus, we should check it out.  Set up a communication network for us.
        descNeptune = Neptune should would be an interesting place to visit.  Set up a communication network for us.
        descEeloo = Is Eeloo reflective enough to bounce a signal off of?  Only one way to find out.  Set up a communication network for us.
        descDres = We're not sure if there's actually anything worth seeing on Dres.  Let's check it out anyway.  Set up a communication network for us.
        descDefault = We'd like to know more about @targetBody.  Set up a communication network for us.
        type = string
    }
    DATA_EXPAND
    {
        targetPlanet = AllBodies().Where(cb => cb.SemiMajorAxis() >= @targetSMA && cb.IsPlanet() && cb.Children().Count() < 3 && cb != HomeWorld())
        type = CelestialBody
    }
    DATA
    {
        isUranus = @targetPlanet.Name() == "Uranus"
        isNeptune = @targetPlanet.Name() == "Neptune"
        isEeloo = @targetPlanet.Name() == "Eeloo"
        isDres = @targetPlanet.Name() == "Dres"
        type = bool
    }
    PARAMETER
    {
        coverage = 0.95
        targetBody = @/targetPlanet
        type = CelestialBodyCoverage
        name = CoverageParameter
    }
    PARAMETER
    {
        targetBody = @/targetBody
        completionText = Shake-out testing completed
        waitingText = Performing shake-out testing
        preWaitText = Testing time after network up
        duration = 7d
        type = Duration
        name = Duration
    }
    REQUIREMENT
    {
        maxCoverage = 1.0
        minCoverage = 0.7
        targetBody = HomeWorld()
        type = CelestialBodyCoverage
        name = CelestialBodyCoverage
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        type = Any
        name = AnyGigaDish
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = RTGigaDish1
            type = PartUnlocked
            name = PartUnlocked1
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = RTGigaDish2
            type = PartUnlocked
            name = PartUnlocked2
        }
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        partModuleType = Generator
        partModuleType = Antenna
        type = PartModuleTypeUnlocked
        name = PartModuleTypeUnlocked
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        maxCoverage = 0.7
        type = CelestialBodyCoverage
    }
}

Data Nodes:
RT_OuterPlanetRelay
    RemoteTech:name = RemoteTech, deterministic = True
    RemoteTech:displayName = RemoteTech, deterministic = True
    RemoteTech:minVersion = 1.15.0, deterministic = True
    RemoteTech:maxCompletions = 0, deterministic = True
    RemoteTech:maxSimultaneous = 0, deterministic = True
    RemoteTech:disabledContractType = [], deterministic = True
    RemoteTech:agent = Contracts.Agents.Agent, deterministic = True
    RemoteTech:sortKey = RemoteTech, deterministic = True
    RemoteTech:tip = Launching CommSats..., deterministic = True
    name = RT_OuterPlanetRelay, deterministic = True
    trace = False, deterministic = True
    title = Create a network for , deterministic = True
    tag = , deterministic = True
    description = We'd like to know more about .  Set up a communication network for us., deterministic = True
    topic = , deterministic = True
    subject = , deterministic = True
    notes = null, deterministic = True
    synopsis = Build a communication network that provides coverage of  with a link back to mission control., deterministic = True
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!, deterministic = True
    agent = Contracts.Agents.Agent, deterministic = True
    minExpiry = 5, deterministic = True
    maxExpiry = 100, deterministic = True
    deadline = 0, deterministic = True
    cancellable = True, deterministic = True
    declinable = True, deterministic = True
    autoAccept = False, deterministic = True
    prestige = [ Significant ], deterministic = True
    targetBody = null, deterministic = True
    maxCompletions = 1, deterministic = True
    maxSimultaneous = 0, deterministic = True
    rewardFunds = 210000, deterministic = True
    rewardReputation = 1, deterministic = True
    rewardScience = 0, deterministic = True
    failureFunds = 0, deterministic = True
    failureReputation = 0, deterministic = True
    advanceFunds = 70000, deterministic = True
    sma = 13599840256, deterministic = True
    targetSMA = 21079752396.8, deterministic = True
    descDefault = We'd like to know more about .  Set up a communication network for us., deterministic = True
    descDres = We're not sure if there's actually anything worth seeing on Dres.  Let's check it out anyway.  Set up a communication network for us., deterministic = True
    descEeloo = Is Eeloo reflective enough to bounce a signal off of?  Only one way to find out.  Set up a communication network for us., deterministic = True
    descNeptune = Neptune should would be an interesting place to visit.  Set up a communication network for us., deterministic = True
    descUranus = There's aren't many places colder than Uranus, we should check it out.  Set up a communication network for us., deterministic = True
    isDres = False, deterministic = True
    isEeloo = False, deterministic = True
    isNeptune = False, deterministic = True
    isUranus = False, deterministic = True
    type = CelestialBody, deterministic = True
    targetPlanet = [ Dres (CelestialBody), Eeloo (CelestialBody) ], deterministic = True
    genericTitle = Create a network for , deterministic = True
    genericDescription = We'd like to know more about .  Set up a communication network for us., deterministic = True
    sortKey = 03.-01, deterministic = True

    CoverageParameter
        type = CelestialBodyCoverage, deterministic = True
        name = CoverageParameter, deterministic = True
        targetBody = null, deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
    
    Duration
        type = Duration, deterministic = True
        name = Duration, deterministic = True
        targetBody = null, deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 7 days, deterministic = True
        preWaitText = Testing time after network up, deterministic = True
        waitingText = Performing shake-out testing, deterministic = True
        completionText = Shake-out testing completed, deterministic = True
        startCriteria = CONTRACT_ACCEPTANCE, deterministic = True
        parameter = [], deterministic = True
    
    CelestialBodyCoverage
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
    AnyGigaDish
        type = Any, deterministic = True
        name = AnyGigaDish, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
        PartUnlocked1
            type = PartUnlocked, deterministic = True
            name = PartUnlocked1, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = null, deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ RTGigaDish1 ], deterministic = True
        
        PartUnlocked2
            type = PartUnlocked, deterministic = True
            name = PartUnlocked2, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = null, deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ RTGigaDish2 ], deterministic = True
        
    PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked, deterministic = True
        name = PartModuleTypeUnlocked, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
        partModuleType = [ Antenna, Generator ], deterministic = True
    
    CelestialBodyCoverage_1
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    

Output log:
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_OuterPlanetRelay': Error parsing targetBody
[EXCEPTION] ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ListExpressionParser`1[CelestialBody].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseStatement[CelestialBody] (System.Collections.Generic.List`1 lval) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet
.............* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_OuterPlanetRelay': Error parsing isDres
[EXCEPTION] System.MissingMethodException: Cannot find method 'Name' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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.Boolean].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet.Name() == "Dres"
...................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Boolean] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Boolean defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_OuterPlanetRelay': Error parsing isEeloo
[EXCEPTION] System.MissingMethodException: Cannot find method 'Name' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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.Boolean].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet.Name() == "Eeloo"
...................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Boolean] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Boolean defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_OuterPlanetRelay': Error parsing isNeptune
[EXCEPTION] System.MissingMethodException: Cannot find method 'Name' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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.Boolean].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet.Name() == "Neptune"
...................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Boolean] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Boolean defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_OuterPlanetRelay': Error parsing isUranus
[EXCEPTION] System.MissingMethodException: Cannot find method 'Name' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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.Boolean].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetPlanet.Name() == "Uranus"
...................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Boolean] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Boolean defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.InvalidParameterFactory: CONTRACT_TYPE 'RT_OuterPlanetRelay', PARAMETER 'CoverageParameter' of type 'CelestialBodyCoverage': Error parsing targetBody
[EXCEPTION] ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ListExpressionParser`1[CelestialBody].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseStatement[CelestialBody] (System.Collections.Generic.List`1 lval) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@/targetPlanet
..............* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[WARNING] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_OuterPlanetRelay': unexpected child node 'DATA_EXPAND' found, ignored.
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'RT_OuterPlanetRelay'
 

RT_OuterSat.log

Spoiler

Debug information for CONTRACT_TYPE 'RT_OuterSat':

Configuration:
CONTRACT_TYPE
{
    advanceFunds = 85000.0 + 5000.0 * @targetBodies.Count()
    rewardFunds = @advanceFunds * 3.0
    rewardReputation = 15.0
    maxCompletions = 1
    agent = Communication Satellite Group
    targetBody = HomeWorld()
    prestige = Trivial
    group = RemoteTech
    completedMessage = The satellite is up and transmitting, and our shake-out testing is complete!
    synopsis = Launch a satellite with enough range for the outer planets and point it towards one of them.  Make sure it has connectivity back to mission control.
    description = We want to go really far!  Let's set up a satellite that can reach the outer planets.
    title = Communication satellite for outer planets
    sortKey = 02.01
    name = RT_OuterSat
    DATA
    {
        targetSMA = @sma * 1.55
        sma = @targetBody.SemiMajorAxis()
        type = double
    }
    DATA
    {
        targetBodies = AllBodies().Where(cb => cb.SemiMajorAxis() >= @targetSMA && cb.IsPlanet() && cb != HomeWorld())
        type = List<CelestialBody>
    }
    PARAMETER
    {
        targetBody = @/targetBody
        disableOnStateChange = false
        define = Giga CommSat I
        type = VesselParameterGroup
        name = OuterSatI
        PARAMETER
        {
            targetBody = @/targetBody
            type = KSCConnectivity
            name = KSCConnectivity
        }
        PARAMETER
        {
            targetBody = @/targetBody
            situation = ORBITING
            type = ReachState
            name = ReachState
        }
        PARAMETER
        {
            targetBody = @/targetBody
            disableOnStateChange = false
            title = Point a dish at ONE of the outer planets
            type = Any
            name = OuterTarget
            PARAMETER
            {
                iteratorCount = @ITERATOR/target.Count()
                target = @ITERATOR/target.ElementAt(IteratorCurrentIndex())
                targetBody = @target
                antennaType = Dish
                type = HasAntenna
                name = HasAntenna
                ITERATOR
                {
                    target = @/targetBodies
                    type = CelestialBody
                }
            }
        }
    }
    PARAMETER
    {
        targetBody = @/targetBody
        completionText = Shake-out testing completed
        waitingText = Performing shake-out testing
        preWaitText = Testing time after network up
        duration = 4d
        type = Duration
        name = Duration
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        title = There must be an outer planet without coverage
        hideChildren = true
        type = Any
        name = Coverage
        REQUIREMENT
        {
            maxCoverage = 0.2
            minCoverage = 0.0
            targetBody = @/targetBodies.ElementAt(0)
            type = CelestialBodyCoverage
            name = CelestialBodyCoverage
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(1)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 1
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(2)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 2
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(3)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 3
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(4)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 4
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(5)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 5
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(6)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 6
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(7)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 7
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(8)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 8
                type = Expression
            }
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            type = All
            REQUIREMENT
            {
                maxCoverage = 0.2
                minCoverage = 0.0
                targetBody = @/targetBodies.ElementAt(9)
                type = CelestialBodyCoverage
                name = CelestialBodyCoverage
            }
            REQUIREMENT
            {
                targetBody = @/targetBody
                expression = @/targetBodies.Count() > 9
                type = Expression
            }
        }
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        type = Any
        name = AnyGigaDish
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = RTGigaDish1
            type = PartUnlocked
            name = PartUnlocked
        }
        REQUIREMENT
        {
            targetBody = @/targetBody
            part = RTGigaDish2
            type = PartUnlocked
            name = PartUnlocked
        }
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        partModuleType = Generator
        partModuleType = Antenna
        type = PartModuleTypeUnlocked
        name = PartModuleTypeUnlocked
    }
}

Data Nodes:
RT_OuterSat
    RemoteTech:name = RemoteTech, deterministic = True
    RemoteTech:displayName = RemoteTech, deterministic = True
    RemoteTech:minVersion = 1.15.0, deterministic = True
    RemoteTech:maxCompletions = 0, deterministic = True
    RemoteTech:maxSimultaneous = 0, deterministic = True
    RemoteTech:disabledContractType = [], deterministic = True
    RemoteTech:agent = Contracts.Agents.Agent, deterministic = True
    RemoteTech:sortKey = RemoteTech, deterministic = True
    RemoteTech:tip = Launching CommSats..., deterministic = True
    name = RT_OuterSat, deterministic = True
    trace = False, deterministic = True
    title = Communication satellite for outer planets, deterministic = True
    tag = , deterministic = True
    description = We want to go really far!  Let's set up a satellite that can reach the outer planets., deterministic = True
    topic = , deterministic = True
    subject = , deterministic = True
    notes = null, deterministic = True
    synopsis = Launch a satellite with enough range for the outer planets and point it towards one of them.  Make sure it has connectivity back to mission control., deterministic = True
    completedMessage = The satellite is up and transmitting, and our shake-out testing is complete!, deterministic = True
    agent = Contracts.Agents.Agent, deterministic = True
    minExpiry = 5, deterministic = True
    maxExpiry = 100, deterministic = True
    deadline = 0, deterministic = True
    cancellable = True, deterministic = True
    declinable = True, deterministic = True
    autoAccept = False, deterministic = True
    prestige = [ Trivial ], deterministic = True
    targetBody = Kerbin (CelestialBody), deterministic = True
    maxCompletions = 1, deterministic = True
    maxSimultaneous = 0, deterministic = True
    rewardFunds = 300000, deterministic = True
    rewardReputation = 15, deterministic = True
    rewardScience = 0, deterministic = True
    failureFunds = 0, deterministic = True
    failureReputation = 0, deterministic = True
    advanceFunds = 100000, deterministic = True
    sma = 13599840256, deterministic = True
    targetSMA = 21079752396.8, deterministic = True
    targetBodies = [ Jool (CelestialBody), Dres (CelestialBody), Eeloo (CelestialBody) ], deterministic = True
    genericTitle = Communication satellite for outer planets, deterministic = True
    genericDescription = We want to go really far!  Let's set up a satellite that can reach the outer planets., deterministic = True
    sortKey = 02.01, deterministic = True

    OuterSatI
        type = VesselParameterGroup, deterministic = True
        name = OuterSatI, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = False, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 00:00:00, deterministic = True
        define = Giga CommSat I, deterministic = True
        defineList = null, deterministic = True
        vessel = [], deterministic = True
        dissassociateVesselsOnContractFailure = True, deterministic = True
        dissassociateVesselsOnContractCompletion = False, deterministic = True
        hideVesselName = False, deterministic = True
    
        KSCConnectivity
            type = KSCConnectivity, deterministic = True
            name = KSCConnectivity, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
        ReachState
            type = ReachState, deterministic = True
            name = ReachState, deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = null, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = null, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
            failWhenUnmet = False, deterministic = True
            biome = null, deterministic = True
            situation = [ ORBITING ], deterministic = True
            minAltitude = -3.402823E+38, deterministic = True
            maxAltitude = 3.402823E+38, deterministic = True
            minTerrainAltitude = 0, deterministic = True
            maxTerrainAltitude = 3.402823E+38, deterministic = True
            minSpeed = 0, deterministic = True
            maxSpeed = 1.79769313486232E+308, deterministic = True
            minRateOfClimb = -1.79769313486232E+308, deterministic = True
            maxRateOfClimb = 1.79769313486232E+308, deterministic = True
            minAcceleration = 0, deterministic = True
            maxAcceleration = 3.402823E+38, deterministic = True
            targetBody = [ Kerbin (CelestialBody) ], deterministic = True
        
        OuterTarget
            type = Any, deterministic = True
            name = OuterTarget, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            rewardFunds = 0, deterministic = True
            rewardReputation = 0, deterministic = True
            rewardScience = 0, deterministic = True
            failureFunds = 0, deterministic = True
            failureReputation = 0, deterministic = True
            optional = False, deterministic = True
            disableOnStateChange = False, deterministic = True
            completeInSequence = False, deterministic = True
            hidden = False, deterministic = True
            hideChildren = False, deterministic = True
            title = Point a dish at ONE of the outer planets, deterministic = True
            notes = null, deterministic = True
            completedMessage = null, deterministic = True
        
            HasAntenna
                type = HasAntenna, deterministic = True
                name = HasAntenna, deterministic = True
                targetBody = Jool (CelestialBody), deterministic = False
                rewardFunds = 0, deterministic = True
                rewardReputation = 0, deterministic = True
                rewardScience = 0, deterministic = True
                failureFunds = 0, deterministic = True
                failureReputation = 0, deterministic = True
                optional = False, deterministic = True
                disableOnStateChange = null, deterministic = True
                completeInSequence = False, deterministic = True
                hidden = False, deterministic = True
                hideChildren = False, deterministic = True
                title = null, deterministic = True
                notes = null, deterministic = True
                completedMessage = null, deterministic = True
                minAntennaPower = 0, deterministic = True
                maxAntennaPower = 1.79769313486232E+308, deterministic = True
                antennaType = TRANSMIT, deterministic = True
                iteratorCount = 3, deterministic = True
                target = Jool (CelestialBody), deterministic = False
            
                ITERATOR
                    type = CelestialBody, deterministic = True
                    target = [ Jool (CelestialBody), Dres (CelestialBody), Eeloo (CelestialBody) ], deterministic = True
                
    Duration
        type = Duration, deterministic = True
        name = Duration, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 4 days, deterministic = True
        preWaitText = Testing time after network up, deterministic = True
        waitingText = Performing shake-out testing, deterministic = True
        completionText = Shake-out testing completed, deterministic = True
        startCriteria = CONTRACT_ACCEPTANCE, deterministic = True
        parameter = [], deterministic = True
    
    Coverage
        type = Any, deterministic = True
        name = Coverage, deterministic = True
        title = There must be an outer planet without coverage, deterministic = True
        hideChildren = True, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
        CelestialBodyCoverage
            type = CelestialBodyCoverage, deterministic = True
            name = CelestialBodyCoverage, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Jool (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
        All
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Dres (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = True, deterministic = True
            
        All_1
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Eeloo (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = True, deterministic = True
            
        All_2
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
        All_3
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
        All_4
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
        All_5
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
        All_6
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
        All_7
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
        All_8
            type = All, deterministic = True
            name = All, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
        
            CelestialBodyCoverage
                type = CelestialBodyCoverage, deterministic = True
                name = CelestialBodyCoverage, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = null, deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
            
            Expression
                type = Expression, deterministic = True
                name = Expression, deterministic = True
                title = null, deterministic = True
                hideChildren = False, deterministic = True
                targetBody = Kerbin (CelestialBody), deterministic = True
                checkOnActiveContract = False, deterministic = True
                invertRequirement = False, deterministic = True
                expression = False, deterministic = True
            
    AnyGigaDish
        type = Any, deterministic = True
        name = AnyGigaDish, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
        PartUnlocked
            type = PartUnlocked, deterministic = True
            name = PartUnlocked, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ RTGigaDish1 ], deterministic = True
        
        PartUnlocked_1
            type = PartUnlocked, deterministic = True
            name = PartUnlocked, deterministic = True
            title = null, deterministic = True
            hideChildren = False, deterministic = True
            targetBody = Kerbin (CelestialBody), deterministic = True
            checkOnActiveContract = False, deterministic = True
            invertRequirement = False, deterministic = True
            part = [ RTGigaDish2 ], deterministic = True
        
    PartModuleTypeUnlocked
        type = PartModuleTypeUnlocked, deterministic = True
        name = PartModuleTypeUnlocked, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
        partModuleType = [ Antenna, Generator ], deterministic = True
    

Output log:
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'RT_OuterSat'
 

RT_PlanetMoonRelay.log

Spoiler

Debug information for CONTRACT_TYPE 'RT_PlanetMoonRelay':

Configuration:
CONTRACT_TYPE
{
    advanceFunds = 70000.0
    rewardFunds = @advanceFunds * 3.0
    rewardReputation = 1.0
    maxCompletions = 1
    agent = Communication Satellite Group
    targetBody = @targetMoon
    prestige = Significant
    group = RemoteTech
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!
    synopsis = Build a communication network that provides coverage of @targetBody with a link back to mission control.
    description = @isIke ? @descIke : @descDefault
    title = Create a network for @targetBody
    sortKey = "03." + @combinedKey
    name = RT_PlanetMoonRelay
    DATA_EXPAND
    {
        targetMoon = AllBodies().Where(cb => cb.IsMoon() && cb.Parent().Children().Count() < 3 && cb.Parent() != HomeWorld())
        type = CelestialBody
    }
    DATA
    {
        descIke = They say there's some sort of "magic boulder" near Ike.  Let's check it out!  Set up a communication network for us.
        descDefault = They say there's no point to setting up a relay for @targetMoon.  We say otherwise!  Set up a communication network for us.
        combinedKey = @parentKey + @moonKey
        moonKey = @targetBody.Index().ToString("D2")
        parentKey = @targetBody.Parent().Index().ToString("D2")
        type = string
    }
    DATA
    {
        isIke = @targetMoon.Name() == "Ike"
        type = bool
    }
    PARAMETER
    {
        coverage = 0.95
        targetBody = @/targetMoon
        type = CelestialBodyCoverage
    }
    PARAMETER
    {
        targetBody = @/targetBody
        completionText = Shake-out testing completed
        waitingText = Performing shake-out testing
        preWaitText = Testing time after network up
        duration = 7d
        type = Duration
        name = Duration
    }
    REQUIREMENT
    {
        maxCoverage = 1.0
        minCoverage = 0.7
        targetBody = HomeWorld()
        type = CelestialBodyCoverage
        name = CelestialBodyCoverage
    }
    REQUIREMENT
    {
        maxCoverage = 1.0
        minCoverage = 0.7
        targetBody = @/targetMoon.Parent()
        type = CelestialBodyCoverage
    }
    REQUIREMENT
    {
        targetBody = @/targetBody
        maxCoverage = 0.7
        type = CelestialBodyCoverage
    }
}

Data Nodes:
RT_PlanetMoonRelay
    RemoteTech:name = RemoteTech, deterministic = True
    RemoteTech:displayName = RemoteTech, deterministic = True
    RemoteTech:minVersion = 1.15.0, deterministic = True
    RemoteTech:maxCompletions = 0, deterministic = True
    RemoteTech:maxSimultaneous = 0, deterministic = True
    RemoteTech:disabledContractType = [], deterministic = True
    RemoteTech:agent = Contracts.Agents.Agent, deterministic = True
    RemoteTech:sortKey = RemoteTech, deterministic = True
    RemoteTech:tip = Launching CommSats..., deterministic = True
    name = RT_PlanetMoonRelay, deterministic = True
    trace = False, deterministic = True
    title = Create a network for , deterministic = True
    tag = , deterministic = True
    description = They say there's no point to setting up a relay for [ Ike,Gilly ].  We say otherwise!  Set up a communication network for us., deterministic = True
    topic = , deterministic = True
    subject = , deterministic = True
    notes = null, deterministic = True
    synopsis = Build a communication network that provides coverage of  with a link back to mission control., deterministic = True
    completedMessage = The network is up and transmitting, and our shake-out testing is complete!, deterministic = True
    agent = Contracts.Agents.Agent, deterministic = True
    minExpiry = 5, deterministic = True
    maxExpiry = 100, deterministic = True
    deadline = 0, deterministic = True
    cancellable = True, deterministic = True
    declinable = True, deterministic = True
    autoAccept = False, deterministic = True
    prestige = [ Significant ], deterministic = True
    targetBody = null, deterministic = True
    maxCompletions = 1, deterministic = True
    maxSimultaneous = 0, deterministic = True
    rewardFunds = 210000, deterministic = True
    rewardReputation = 1, deterministic = True
    rewardScience = 0, deterministic = True
    failureFunds = 0, deterministic = True
    failureReputation = 0, deterministic = True
    advanceFunds = 70000, deterministic = True
    parentKey = -01, deterministic = True
    moonKey = -01, deterministic = True
    combinedKey = -01-01, deterministic = True
    descDefault = They say there's no point to setting up a relay for [ Ike,Gilly ].  We say otherwise!  Set up a communication network for us., deterministic = True
    descIke = They say there's some sort of "magic boulder" near Ike.  Let's check it out!  Set up a communication network for us., deterministic = True
    isIke = False, deterministic = True
    type = CelestialBody, deterministic = True
    targetMoon = [ Ike (CelestialBody), Gilly (CelestialBody) ], deterministic = True
    genericTitle = Create a network for , deterministic = True
    genericDescription = They say there's no point to setting up a relay for [ Ike,Gilly ].  We say otherwise!  Set up a communication network for us., deterministic = True
    sortKey = 03.-01-01, deterministic = True

    CelestialBodyCoverage
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        targetBody = null, deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
    
    Duration
        type = Duration, deterministic = True
        name = Duration, deterministic = True
        targetBody = null, deterministic = True
        rewardFunds = 0, deterministic = True
        rewardReputation = 0, deterministic = True
        rewardScience = 0, deterministic = True
        failureFunds = 0, deterministic = True
        failureReputation = 0, deterministic = True
        optional = False, deterministic = True
        disableOnStateChange = null, deterministic = True
        completeInSequence = False, deterministic = True
        hidden = False, deterministic = True
        hideChildren = False, deterministic = True
        title = null, deterministic = True
        notes = null, deterministic = True
        completedMessage = null, deterministic = True
        duration = 7 days, deterministic = True
        preWaitText = Testing time after network up, deterministic = True
        waitingText = Performing shake-out testing, deterministic = True
        completionText = Shake-out testing completed, deterministic = True
        startCriteria = CONTRACT_ACCEPTANCE, deterministic = True
        parameter = [], deterministic = True
    
    CelestialBodyCoverage_1
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = Kerbin (CelestialBody), deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
    CelestialBodyCoverage_2
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    
    CelestialBodyCoverage_3
        type = CelestialBodyCoverage, deterministic = True
        name = CelestialBodyCoverage, deterministic = True
        title = null, deterministic = True
        hideChildren = False, deterministic = True
        targetBody = null, deterministic = True
        checkOnActiveContract = False, deterministic = True
        invertRequirement = False, deterministic = True
    

Output log:
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_PlanetMoonRelay': Error parsing targetBody
[EXCEPTION] ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ListExpressionParser`1[CelestialBody].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseStatement[CelestialBody] (System.Collections.Generic.List`1 lval) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetMoon
...........* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_PlanetMoonRelay': Error parsing isIke
[EXCEPTION] System.MissingMethodException: Cannot find method 'Name' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[Boolean] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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.Boolean].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@targetMoon.Name() == "Ike"
.................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Boolean].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Boolean] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[Boolean] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, Boolean defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.InvalidParameterFactory: CONTRACT_TYPE 'RT_PlanetMoonRelay', PARAMETER '' of type 'CelestialBodyCoverage': Error parsing targetBody
[EXCEPTION] ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ListExpressionParser`1[CelestialBody].ConvertType[CelestialBody] (System.Collections.Generic.List`1 value) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseStatement[CelestialBody] (System.Collections.Generic.List`1 lval) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as ContractConfigurator.DataStoreCastException: Cannot cast from System.Collections.Generic.List`1[CelestialBody] to CelestialBody.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[CelestialBody].ParseStatement[CelestialBody] () [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@/targetMoon
............* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[ERROR] ContractConfigurator.InvalidContractRequirement: CONTRACT_TYPE 'RT_PlanetMoonRelay', REQUIREMENT '' of type 'CelestialBodyCoverage': Error parsing targetBody
[EXCEPTION] System.MissingMethodException: Cannot find method 'Parent' for class 'List`1'.
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].GetCalledFunction (System.String functionName, Function& selectedMethod, Boolean isFunction) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[System.Collections.Generic.List`1[CelestialBody]].ParseMethod[CelestialBody] (ContractConfigurator.ExpressionParser.Token token, System.Collections.Generic.List`1 obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as System.Reflection.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[T].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as System.Exception: Error parsing statement.
Error occurred near '*':
@/targetMoon.Parent()
....................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation) [0x00000] in <filename unknown>:0 
[WARNING] ContractConfigurator.ContractType: CONTRACT_TYPE 'RT_PlanetMoonRelay': unexpected child node 'DATA_EXPAND' found, ignored.
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'RT_PlanetMoonRelay'
 

Does anyone know why this is happening? I haven't been able to find any other mention of this problem. As far as I can understand, all mods are updated for 1.3.1.

I'm sorry if this should have been posted in the Contract Configurator forum.

Thank you for your help

/Morten

Edited by Malakith
spelling error.
Link to comment
Share on other sites

On 11/17/2017 at 10:44 AM, Malakith said:

Hey guys

I have an issue, which I dont really know if its with the contract pack or contract configurator...

I have exactly the same. Had many mods, but did a clean install and tried with only the contract pack and dependencies, i.e. same as above. No Remote Tech Agency or contracts shows up.

Love to hear if someone got a fix for it. Thanks

Edited by softweir
Removed excessive info from quote
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

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