diff --git a/GameData/RP-1/Contracts/Earth Satellites/FirstWeatherSat.cfg b/GameData/RP-1/Contracts/Earth Satellites/FirstWeatherSat.cfg
index 7c78a911dd6..e0140307992 100644
--- a/GameData/RP-1/Contracts/Earth Satellites/FirstWeatherSat.cfg
+++ b/GameData/RP-1/Contracts/Earth Satellites/FirstWeatherSat.cfg
@@ -92,11 +92,11 @@ CONTRACT_TYPE
}
PARAMETER
{
- name = HasWeatherSatPayload
+ name = HasNavSatPayload
type = HasResource
- resource = WeatherSatPayload
+ resource = NavSatPayload
minQuantity = @/payload-0.1
- title = Have a WeatherSatPayload of at least @/payload units on the craft
+ title = Have a NavSatPayload of at least @/payload units on the craft
hideChildren = true
}
PARAMETER
diff --git a/GameData/RP-1/Contracts/RP0_Contract_Resources.cfg b/GameData/RP-1/Contracts/RP0_Contract_Resources.cfg
index 87fa644455e..89bbf60244d 100644
--- a/GameData/RP-1/Contracts/RP0_Contract_Resources.cfg
+++ b/GameData/RP-1/Contracts/RP0_Contract_Resources.cfg
@@ -13,7 +13,7 @@ RESOURCE_DEFINITION
RESOURCE_DEFINITION
{
name = ComSatPayload
- density = 0.0008
+ density = 0.0
unitCost = 0.0
flowMode = NO_FLOW
transfer = NONE
@@ -37,7 +37,7 @@ RESOURCE_DEFINITION
RESOURCE_DEFINITION
{
name = NavSatPayload
- density = 0.00012
+ density = 0.0
unitCost = 0.0
flowMode = NO_FLOW
transfer = NONE
@@ -59,30 +59,6 @@ RESOURCE_DEFINITION
{
-addPayload = DEL
TANK
- {
- name = ComSatPayload
- utilization = 1
- fillable = True
- amount = 0.0
- maxAmount = 0.0
- }
- TANK
- {
- name = WeatherSatPayload
- utilization = 1
- fillable = True
- amount = 0.0
- maxAmount = 0.0
- }
- TANK
- {
- name = NavSatPayload
- utilization = 1
- fillable = True
- amount = 0.0
- maxAmount = 0.0
- }
- TANK
{
name = SoundingPayload
utilization = 1
diff --git a/GameData/RP-1/Localization/en-us.cfg b/GameData/RP-1/Localization/en-us.cfg
index 4449b243ce6..346afc70817 100644
--- a/GameData/RP-1/Localization/en-us.cfg
+++ b/GameData/RP-1/Localization/en-us.cfg
@@ -270,7 +270,7 @@
#rp0_loading_tip_050 = Making minor changes (+/- 4%) to tank diameter or length without needing new tooling...
#rp0_loading_tip_051 = Using tooled parts to speed up integration times...
#rp0_loading_tip_052 = Placing sounding rocket payload in a high-pressure fuel tank...
- #rp0_loading_tip_053 = Checking Service Modules for the correct Comsat, Navsat, or Weathersat payload...
+ #rp0_loading_tip_053 = Using dedicated communication and navigation satellite parts for contracts...
#rp0_loading_tip_054 = Using high pressure HP tanks for pressure-fed engines...
#rp0_loading_tip_055 = Adding MLI to tanks with cryogenic propellants...
#rp0_loading_tip_056 = Ensuring launch complex is configured to handle intended propellants...
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/BackPattern1.dds b/GameData/RP-1/Parts/ContractSat/Assets/BackPattern1.dds
new file mode 100644
index 00000000000..36bfba8375f
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/BackPattern1.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/BackPattern_METAL.dds b/GameData/RP-1/Parts/ContractSat/Assets/BackPattern_METAL.dds
new file mode 100644
index 00000000000..946d2d9c209
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/BackPattern_METAL.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Cloudsat.dds b/GameData/RP-1/Parts/ContractSat/Assets/Cloudsat.dds
new file mode 100644
index 00000000000..c4459488c02
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Cloudsat.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Cloudsat_METAL.dds b/GameData/RP-1/Parts/ContractSat/Assets/Cloudsat_METAL.dds
new file mode 100644
index 00000000000..f37e03296ef
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Cloudsat_METAL.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Eurostar.mu b/GameData/RP-1/Parts/ContractSat/Assets/Eurostar.mu
new file mode 100644
index 00000000000..24c6bf85517
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Eurostar.mu differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Holes1-NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/Holes1-NRM.dds
new file mode 100644
index 00000000000..801e350b21e
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Holes1-NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Holes1.dds b/GameData/RP-1/Parts/ContractSat/Assets/Holes1.dds
new file mode 100644
index 00000000000..7ab2806e01b
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Holes1.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Mesh2.dds b/GameData/RP-1/Parts/ContractSat/Assets/Mesh2.dds
new file mode 100644
index 00000000000..de1523da7f6
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Mesh2.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Mesh2_NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/Mesh2_NRM.dds
new file mode 100644
index 00000000000..28666ec78f1
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Mesh2_NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Metal041A.dds b/GameData/RP-1/Parts/ContractSat/Assets/Metal041A.dds
new file mode 100644
index 00000000000..03347ee5c8d
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Metal041A.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Metal041A_METAL.dds b/GameData/RP-1/Parts/ContractSat/Assets/Metal041A_METAL.dds
new file mode 100644
index 00000000000..7e543b8216c
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Metal041A_METAL.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Metal041A_NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/Metal041A_NRM.dds
new file mode 100644
index 00000000000..a626568882d
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Metal041A_NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Metal044A.dds b/GameData/RP-1/Parts/ContractSat/Assets/Metal044A.dds
new file mode 100644
index 00000000000..796d67f50c1
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Metal044A.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Metal044A_METAL.dds b/GameData/RP-1/Parts/ContractSat/Assets/Metal044A_METAL.dds
new file mode 100644
index 00000000000..f7c5486ec5d
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Metal044A_METAL.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Metal044A_NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/Metal044A_NRM.dds
new file mode 100644
index 00000000000..7afb2a008dc
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Metal044A_NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Metal046B.dds b/GameData/RP-1/Parts/ContractSat/Assets/Metal046B.dds
new file mode 100644
index 00000000000..97b57ca37d5
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Metal046B.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Metal046B_METAL.dds b/GameData/RP-1/Parts/ContractSat/Assets/Metal046B_METAL.dds
new file mode 100644
index 00000000000..96749c69dac
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Metal046B_METAL.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Metal046B_NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/Metal046B_NRM.dds
new file mode 100644
index 00000000000..0843bd9949a
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Metal046B_NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Molniya.mu b/GameData/RP-1/Parts/ContractSat/Assets/Molniya.mu
new file mode 100644
index 00000000000..8d1f3b03d0f
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Molniya.mu differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Navisat.mu b/GameData/RP-1/Parts/ContractSat/Assets/Navisat.mu
new file mode 100644
index 00000000000..84413ddc0a7
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Navisat.mu differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/PanelPattern1.dds b/GameData/RP-1/Parts/ContractSat/Assets/PanelPattern1.dds
new file mode 100644
index 00000000000..a09c39536fd
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/PanelPattern1.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/PanelPattern1_METAL.dds b/GameData/RP-1/Parts/ContractSat/Assets/PanelPattern1_METAL.dds
new file mode 100644
index 00000000000..801611d73be
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/PanelPattern1_METAL.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/PanelPattern1_NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/PanelPattern1_NRM.dds
new file mode 100644
index 00000000000..76dd03dbe4d
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/PanelPattern1_NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Plastic013A.dds b/GameData/RP-1/Parts/ContractSat/Assets/Plastic013A.dds
new file mode 100644
index 00000000000..45ccb6c9c8c
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Plastic013A.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Plastic013A_NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/Plastic013A_NRM.dds
new file mode 100644
index 00000000000..78381b09b78
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Plastic013A_NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Smooth-METAL.dds b/GameData/RP-1/Parts/ContractSat/Assets/Smooth-METAL.dds
new file mode 100644
index 00000000000..4da55b6b63c
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Smooth-METAL.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Smooth-NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/Smooth-NRM.dds
new file mode 100644
index 00000000000..37997bc9007
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Smooth-NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Solar1.dds b/GameData/RP-1/Parts/ContractSat/Assets/Solar1.dds
new file mode 100644
index 00000000000..adf466333bc
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Solar1.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Solar2.dds b/GameData/RP-1/Parts/ContractSat/Assets/Solar2.dds
new file mode 100644
index 00000000000..064e1a484df
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Solar2.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Solar2_METAL.dds b/GameData/RP-1/Parts/ContractSat/Assets/Solar2_METAL.dds
new file mode 100644
index 00000000000..0de845216b0
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Solar2_METAL.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Solar2_NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/Solar2_NRM.dds
new file mode 100644
index 00000000000..d61124d7d02
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Solar2_NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Solar3.dds b/GameData/RP-1/Parts/ContractSat/Assets/Solar3.dds
new file mode 100644
index 00000000000..49bbce313fe
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Solar3.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Solar3_METAL.dds b/GameData/RP-1/Parts/ContractSat/Assets/Solar3_METAL.dds
new file mode 100644
index 00000000000..cb03acd3221
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Solar3_METAL.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Solar3_NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/Solar3_NRM.dds
new file mode 100644
index 00000000000..1251ce1182f
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Solar3_NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Solar4.dds b/GameData/RP-1/Parts/ContractSat/Assets/Solar4.dds
new file mode 100644
index 00000000000..0fd0b2f611f
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Solar4.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Solar4_NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/Solar4_NRM.dds
new file mode 100644
index 00000000000..5fe841efbd6
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Solar4_NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Solar5.dds b/GameData/RP-1/Parts/ContractSat/Assets/Solar5.dds
new file mode 100644
index 00000000000..0f8427c1346
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Solar5.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Syncom.mu b/GameData/RP-1/Parts/ContractSat/Assets/Syncom.mu
new file mode 100644
index 00000000000..e6f700c6118
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Syncom.mu differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Transit1b.mu b/GameData/RP-1/Parts/ContractSat/Assets/Transit1b.mu
new file mode 100644
index 00000000000..2d292b5a595
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Transit1b.mu differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Transitpanel.dds b/GameData/RP-1/Parts/ContractSat/Assets/Transitpanel.dds
new file mode 100644
index 00000000000..8e09afa02f3
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Transitpanel.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Transitpanel_METAL.dds b/GameData/RP-1/Parts/ContractSat/Assets/Transitpanel_METAL.dds
new file mode 100644
index 00000000000..5536cf824e8
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Transitpanel_METAL.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Transitpanel_NRM.dds b/GameData/RP-1/Parts/ContractSat/Assets/Transitpanel_NRM.dds
new file mode 100644
index 00000000000..5ef11e1c2c9
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Transitpanel_NRM.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/Tsiklon.mu b/GameData/RP-1/Parts/ContractSat/Assets/Tsiklon.mu
new file mode 100644
index 00000000000..36024959b91
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/Tsiklon.mu differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/dish_AO.dds b/GameData/RP-1/Parts/ContractSat/Assets/dish_AO.dds
new file mode 100644
index 00000000000..2ca11d41eb9
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/dish_AO.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/foil_n.dds b/GameData/RP-1/Parts/ContractSat/Assets/foil_n.dds
new file mode 100644
index 00000000000..abe919ea2d5
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/foil_n.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/tex_01.dds b/GameData/RP-1/Parts/ContractSat/Assets/tex_01.dds
new file mode 100644
index 00000000000..2b90efcbac0
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/tex_01.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/transitstripe.dds b/GameData/RP-1/Parts/ContractSat/Assets/transitstripe.dds
new file mode 100644
index 00000000000..924d858574c
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/transitstripe.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/Assets/transitstripe_METAL.dds b/GameData/RP-1/Parts/ContractSat/Assets/transitstripe_METAL.dds
new file mode 100644
index 00000000000..deeb6a5e76a
Binary files /dev/null and b/GameData/RP-1/Parts/ContractSat/Assets/transitstripe_METAL.dds differ
diff --git a/GameData/RP-1/Parts/ContractSat/CommunicationSat.cfg b/GameData/RP-1/Parts/ContractSat/CommunicationSat.cfg
new file mode 100644
index 00000000000..65915a4f3c9
--- /dev/null
+++ b/GameData/RP-1/Parts/ContractSat/CommunicationSat.cfg
@@ -0,0 +1,211 @@
+// ===========================================================================
+// All work here was originally from Shadowmage and SSTU. I have adapted their
+// work to be more usable for our purposes in RP-1, but all credit
+// should be given to Shadowmage for the great work!
+// ===========================================================================
+
+PART:NEEDS[ROLib]
+{
+ module = Part
+ name = RP-1-CommunicationSat
+ author = Shadowmage, Pap, itsRyan
+
+ MODEL
+ {
+ model = ROLib/Assets/EmptyProxyModel
+ }
+
+ scale = 1.0
+ rescaleFactor = 1.0
+
+ attachRules = 1,1,1,1,0
+
+ // ============================================================================
+ // Title, Description, Category, Techs
+ // ============================================================================
+
+ title = Communication Contract Satellite
+ manufacturer = Generic
+ description = A resizable satellite to be used for communication contract payload From RP-1 mod
+ tags = avionics, tank, core
+
+ mass = 1.0
+
+ category = Pods
+ TechRequired = unlockParts
+ cost = 1
+ entryCost = 1
+ vesselType = Probe
+
+ // ============================================================================
+ // DO NOT CHANGE (Normally)
+ // ============================================================================
+
+ maxTemp = 500
+ skinMaxTemp = 500
+ crashTolerance = 6
+ breakingForce = 150
+ breakingTorque = 250
+ fuelCrossFeed = true
+ subcategory = 0
+ emissiveConstant = 0.85
+ thermalMassModifier = 1.0
+ skinMassPerArea = 2.0
+ buoyancy = 0.95
+
+ RSSROConfig = True
+ TechRequired = unlockParts
+ RP0conf = True
+
+ // ============================================================================
+ // Modules and Resources
+ // ============================================================================
+
+ MODULE
+ {
+ name = ModuleROTank
+
+ // Dimension Settings
+ diameterLargeStep = 1.0
+ diameterSmallStep = 0.1
+ diameterSlideStep = 0.001
+ minDiameter = 0.1
+ maxDiameter = 50.0
+ minLength = 0.1
+ maxLength = 50.0
+
+ // Adapter Settings
+ useAdapterMass = false
+ useAdapterCost = false
+
+ // Attach Node Settings
+ topNodeName = none
+ bottomNodeName = none
+ noseNodeNames = none
+ coreManagedNodes = topInner, bottomInner
+ mountNodeNames = none
+ topInterstageNodeName = none
+ bottomInterstageNodeName = none
+
+ // Fairing Settings
+ topFairingIndex = -1
+ bottomFairingIndex = -1
+
+ // Default Values
+ currentDiameter = 2.0
+ currentLength = 2.0
+ currentVariant = Communication
+ currentNose = Model-None
+ currentCore = ROLib-Eurostar
+ currentMount = Model-None
+ currentNoseTexture = default
+ currentCoreTexture = default
+ currentMountTexture = default
+
+ // Model Handling
+ lengthWidth = false
+ validateNose = false
+ validateMount = false
+
+ CORE
+ {
+ variant = Communication
+ model = ROLib-Eurostar
+ model = ROLib-Syncom
+ model = ROLib-Molniya
+ }
+
+ NOSE
+ {
+ model = Model-None
+ }
+
+ MOUNT
+ {
+ model = Model-None
+ }
+ }
+
+ MODULE
+ {
+ name = ModuleROPayload
+ animationName = NlaTrack
+ extendActionName = #autoLOC_6001333 //#autoLOC_6001333 = Deploy
+ retractActionName = #autoLOC_6001339 //#autoLOC_6001339 = Retract
+ sunTracking = true
+ raycastTransformName = SunPivot
+ pivotName = SunPivot
+ resourceName = ElectricCharge
+ chargeRate = 0
+ }
+
+ MODULE
+ {
+ name = ModuleCommand
+ minimumCrew = 0
+
+ RESOURCE
+ {
+ name = ElectricCharge
+ amount = 1
+ maxAmount = 1
+ }
+ }
+
+ MODULE
+ {
+ name = ModuleToggleCrossfeed
+ toggleFlight = true
+ toggleEditor = true
+ crossfeedStatus = true
+ }
+
+ MODULE
+ {
+ name = SSTURecolorGUI
+ }
+
+ MODULE
+ {
+ name = ModuleFuelTanks
+ volume = 2250
+ utilizationTweakable = true
+ maxUtilization = 100
+ utilization = 100
+ type = ComSat-I
+ typeAvailable = ComSat-I
+ TANK
+ {
+ name = ComSatPayload
+ amount = 100%
+ maxAmount = 100%
+ }
+ UPGRADES
+ {
+ UPGRADE
+ {
+ name__ = RFTech-ComSat-II
+ description__ = You can now use level II Communication equpipment containers
+ IsAdditiveUpgrade__ = true
+ typeAvailable = ComSat-II
+ }
+ UPGRADE
+ {
+ name__ = RFTech-ComSat-III
+ description__ = You can now use level III Communication equpipment containers
+ IsAdditiveUpgrade__ = true
+ typeAvailable = ComSat-III
+ }
+ }
+ }
+}
+
+@PART[RP-1-CommunicationSat]:NEEDS[RealAntennas]
+{
+ %MODULE[ModuleRealAntenna] {
+ %referenceGain = 1.5
+ %_enabled = False
+ }
+
+}
+
diff --git a/GameData/RP-1/Parts/ContractSat/ContractSatTanks.cfg b/GameData/RP-1/Parts/ContractSat/ContractSatTanks.cfg
new file mode 100644
index 00000000000..87b1e25055b
--- /dev/null
+++ b/GameData/RP-1/Parts/ContractSat/ContractSatTanks.cfg
@@ -0,0 +1,112 @@
+TANK_DEFINITION
+{
+ name = ComSat-I
+ highlyPressurized = True
+ basemass = 0.00004 * volume
+ baseCost = 0.0 * volume
+ maxUtilization = 25
+ defaultMass = 0.00016
+
+ TANK
+ {
+ name = ComSatPayload
+ mass = 0.008
+ cost = 0
+ utilization = 1
+ }
+}
+
+TANK_DEFINITION
+{
+ name = ComSat-II
+ highlyPressurized = True
+ basemass = 0.00003 * volume
+ baseCost = 0.0 * volume
+ maxUtilization = 37.5
+ defaultMass = 0.00016
+
+ TANK
+ {
+ name = ComSatPayload
+ mass = 0.00533333
+ cost = 0
+ utilization = 1
+ }
+}
+
+TANK_DEFINITION
+{
+ name = ComSat-III
+ highlyPressurized = True
+ basemass = 0.00002 * volume
+ baseCost = 0.0 * volume
+ maxUtilization = 56.25
+ defaultMass = 0.00016
+
+ TANK
+ {
+ name = ComSatPayload
+ mass = 0.00355555
+ cost = 0
+ utilization = 1
+ }
+}
+
+TANK_DEFINITION
+{
+ name = NavSat-I
+ highlyPressurized = True
+ basemass = 0.00004 * volume
+ baseCost = 0.0 * volume
+ maxUtilization = 25
+ defaultMass = 0.00016
+
+ TANK
+ {
+ name = NavSatPayload
+ mass = 0.00012
+ cost = 0
+ utilization = 1
+ }
+}
+
+TANK_DEFINITION
+{
+ name = NavSat-II
+ highlyPressurized = True
+ basemass = 0.00003 * volume
+ baseCost = 0.0 * volume
+ maxUtilization = 37.5
+ defaultMass = 0.00016
+
+ TANK
+ {
+ name = NavSatPayload
+ mass = 0.00533333
+ cost = 0
+ utilization = 1
+ }
+}
+
+TANK_DEFINITION
+{
+ name = NavSat-III
+ highlyPressurized = True
+ basemass = 0.00002 * volume
+ baseCost = 0.0 * volume
+ maxUtilization = 56.25
+ defaultMass = 0.00016
+
+ TANK
+ {
+ name = NavSatPayload
+ mass = 0.00355555
+ cost = 0
+ utilization = 1
+ }
+}
+
+@PARTUPGRADE[RFTech-SM-*]:AFTER[RealismOverhaul]
+{
+ @description ^= :Satellite Payload, :Propellants, :
+}
\ No newline at end of file
diff --git a/GameData/RP-1/Parts/ContractSat/NavigationSat.cfg b/GameData/RP-1/Parts/ContractSat/NavigationSat.cfg
new file mode 100644
index 00000000000..936e7d05a71
--- /dev/null
+++ b/GameData/RP-1/Parts/ContractSat/NavigationSat.cfg
@@ -0,0 +1,213 @@
+// ===========================================================================
+// All work here was originally from Shadowmage and SSTU. I have adapted their
+// work to be more usable for our purposes in RP-1, but all credit
+// should be given to Shadowmage for the great work!
+// ===========================================================================
+
+PART:NEEDS[ROLib]
+{
+ module = Part
+ name = RP-1-NavigationSat
+ author = Shadowmage, Pap, itsRyan
+
+ MODEL
+ {
+ model = ROLib/Assets/EmptyProxyModel
+ }
+
+ scale = 1.0
+ rescaleFactor = 1.0
+
+ // stack, srfAttach, allowStack, allowSrfAttach, allowCollision
+ attachRules = 1,1,1,1,0
+
+ // ============================================================================
+ // Title, Description, Category, Techs
+ // ============================================================================
+
+ title = Navigation Contract Satellite
+ manufacturer = Generic
+ description = A resizable satellite to be used for navigation contract payload From RP-1 mod
+ tags = avionics, tank, core
+
+ mass = 1.0
+
+ category = Pods
+ TechRequired = unlockParts
+ cost = 150
+ entryCost = 1
+ vesselType = Probe
+
+ // ============================================================================
+ // DO NOT CHANGE (Normally)
+ // ============================================================================
+
+ maxTemp = 500
+ skinMaxTemp = 500
+ crashTolerance = 6
+ breakingForce = 150
+ breakingTorque = 250
+ fuelCrossFeed = true
+ subcategory = 0
+ emissiveConstant = 0.85
+ thermalMassModifier = 1.0
+ skinMassPerArea = 2.0
+ buoyancy = 0.95
+
+ RSSROConfig = True
+ TechRequired = unlockParts
+ RP0conf = True
+
+ // ============================================================================
+ // Modules and Resources
+ // ============================================================================
+
+
+ MODULE
+ {
+ name = ModuleROTank
+
+ // Dimension Settings
+ diameterLargeStep = 1.0
+ diameterSmallStep = 0.1
+ diameterSlideStep = 0.001
+ minDiameter = 0.1
+ maxDiameter = 50.0
+ minLength = 0.1
+ maxLength = 50.0
+
+ // Adapter Settings
+ useAdapterMass = false
+ useAdapterCost = false
+
+ // Attach Node Settings
+ topNodeName = none
+ bottomNodeName = none
+ noseNodeNames = none
+ coreManagedNodes = topInner, bottomInner
+ mountNodeNames = none
+ topInterstageNodeName = none
+ bottomInterstageNodeName = none
+
+ // Fairing Settings
+ topFairingIndex = -1
+ bottomFairingIndex = -1
+
+ // Default Values
+ currentDiameter = 2.0
+ currentLength = 2.0
+ currentVariant = Navigation
+ currentNose = Model-None
+ currentCore = ROLib-Tsiklon
+ currentMount = Model-None
+ currentNoseTexture = default
+ currentCoreTexture = default
+ currentMountTexture = default
+
+ // Model Handling
+ lengthWidth = false
+ validateNose = false
+ validateMount = false
+
+ CORE
+ {
+ variant = Navigation
+ model = ROLib-Tsiklon
+ model = ROLib-Transit1B
+ model = ROLib-Navisat
+ }
+
+ NOSE
+ {
+ model = Model-None
+ }
+
+ MOUNT
+ {
+ model = Model-None
+ }
+ }
+
+ MODULE
+ {
+ name = ModuleROPayload
+ animationName = NlaTrack
+ extendActionName = #autoLOC_6001333 //#autoLOC_6001333 = Deploy
+ retractActionName = #autoLOC_6001339 //#autoLOC_6001339 = Retract
+ sunTracking = true
+ raycastTransformName = SunPivot
+ pivotName = SunPivot
+ resourceName = ElectricCharge
+ chargeRate = 0
+ }
+
+ MODULE
+ {
+ name = ModuleCommand
+ minimumCrew = 0
+
+ RESOURCE
+ {
+ name = ElectricCharge
+ amount = 1
+ maxAmount = 1
+ }
+ }
+
+ MODULE
+ {
+ name = ModuleToggleCrossfeed
+ toggleFlight = true
+ toggleEditor = true
+ crossfeedStatus = true
+ }
+
+ MODULE
+ {
+ name = SSTURecolorGUI
+ }
+
+ MODULE
+ {
+ name = ModuleFuelTanks
+ volume = 3000
+ utilizationTweakable = true
+ maxUtilization = 100
+ utilization = 100
+ type = NavSat-I
+ typeAvailable = NavSat-I
+ TANK
+ {
+ name = NavSatPayload
+ amount = 100%
+ maxAmount = 100%
+ }
+ UPGRADES
+ {
+ UPGRADE
+ {
+ name__ = RFTech-NavSat-II
+ description__ = You can now use level II Navigation equpipment containers
+ IsAdditiveUpgrade__ = true
+ typeAvailable = NavSat-II
+ }
+ UPGRADE
+ {
+ name__ = RFTech-NavSat-III
+ description__ = You can now use level III Navigation equpipment containers
+ IsAdditiveUpgrade__ = true
+ typeAvailable = NavSat-III
+ }
+ }
+ }
+}
+
+@PART[RP-1-NavigationSat]:NEEDS[RealAntennas]
+{
+ %MODULE[ModuleRealAntenna] {
+ %referenceGain = 1.5
+ %_enabled = False
+ }
+
+}
+
diff --git a/GameData/RP-1/Parts/ContractSat/ROL-ContractSat.cfg b/GameData/RP-1/Parts/ContractSat/ROL-ContractSat.cfg
new file mode 100644
index 00000000000..0474b8d0147
--- /dev/null
+++ b/GameData/RP-1/Parts/ContractSat/ROL-ContractSat.cfg
@@ -0,0 +1,985 @@
+// Some public domain texures used from nasa.gov
+// Some creative commons textures used from ambientCG.com
+
+ROL_MODEL:NEEDS[ROLib]
+{
+ name = ROLib-Molniya
+ title = Molniya
+ modelName = RP-1/Parts/ContractSat/Assets/Molniya
+ orientation = CENTRAL
+ enableVScale = false
+ canVScale = false
+ minVerticalScale = 1.0
+ maxVerticalScale = 1.0
+ bodyNode = 0.0,2.35,0.0,0.0,1.0,0.0,2.0
+ bodyNode = 0.0,-1.50,0.0,0.0,-1.0,0.0,2.0
+ height = 4
+ diameter = 2.48
+ volume = 18.304
+ upperDiameter = 2
+ lowerDiameter = 2.48
+ animationName = NlaTrack
+ sunTracking = true
+ secondaryTransformName = SunPivot
+ pivotName = SunPivot
+ resourceName = ElectricCharge
+ chargeRate = 0
+}
+
+ROL_MODEL:NEEDS[ROLib]
+{
+ name = ROLib-Navisat
+ title = Navisat
+ modelName = RP-1/Parts/ContractSat/Assets/Navisat
+ orientation = CENTRAL
+ enableVScale = false
+ canVScale = false
+ minVerticalScale = 1.0
+ maxVerticalScale = 1.0
+ bodyNode = 0.0,1.18,0.0,0.0,1.0,0.0,2.0
+ bodyNode = 0.0,-1.22,0.0,0.0,-1.0,0.0,2.0
+ height = 2.5
+ diameter = 1.8
+ volume = 6.5614
+ upperDiameter = 1.8
+ lowerDiameter =1.8
+ animationName = NlaTrack
+ sunTracking = true
+ secondaryTransformName = SunPivot
+ pivotName = SunPivot
+ resourceName = ElectricCharge
+ chargeRate = 0
+}
+ROL_MODEL:NEEDS[ROLib]
+{
+ name = ROLib-Eurostar
+ title = Eurostar
+ modelName = RP-1/Parts/ContractSat/Assets/Eurostar
+ orientation = CENTRAL
+ enableVScale = false
+ canVScale = false
+ minVerticalScale = 1.0
+ maxVerticalScale = 1.0
+ bodyNode = 0.0,1.30,0.0,0.0,1.0,0.0,2.0
+ bodyNode = 0.0,-1.35,0.0,0.0,-1.0,0.0,2.0
+ height = 2.7
+ diameter = 2
+ volume = 9
+ upperDiameter = 2
+ lowerDiameter = 2
+ animationName = NlaTrack
+ sunTracking = true
+ secondaryTransformName = SunPivot
+ pivotName = SunPivot
+ resourceName = ElectricCharge
+ chargeRate = 0
+}
+
+ROL_MODEL:NEEDS[ROLib]
+{
+ name = ROLib-Transit1B
+ title = Transit 1B
+ modelName = RP-1/Parts/ContractSat/Assets/Transit1b
+ orientation = CENTRAL
+ enableVScale = false
+ canVScale = false
+ minVerticalScale = 1.0
+ maxVerticalScale = 1.0
+ bodyNode = 0.0,0.47,0.0,0.0,1.0,0.0,2.0
+ bodyNode = 0.0,-0.46,0.0,0.0,-1.0,0.0,2.0
+ height = 1
+ diameter = 1
+ volume = 0.75
+ upperDiameter = 0.91
+ lowerDiameter = 0.91
+ animationName = NlaTrack
+ sunTracking = true
+ secondaryTransformName = SunPivot
+ pivotName = SunPivot
+ resourceName = ElectricCharge
+ chargeRate = 0
+}
+
+ROL_MODEL:NEEDS[ROLib]
+{
+ name = ROLib-Syncom
+ title = Syncom
+ modelName = RP-1/Parts/ContractSat/Assets/Syncom
+ orientation = CENTRAL
+ enableVScale = false
+ canVScale = false
+ minVerticalScale = 1.0
+ maxVerticalScale = 1.0
+ bodyNode = 0.0,0.27,0.0,0.0,1.0,0.0,2.0
+ bodyNode = 0.0,-0.25,0.0,0.0,-1.0,0.0,2.0
+ height = 0.5
+ diameter = 0.74
+ volume = 0.235
+ upperDiameter = 0.74
+ lowerDiameter = 0.74
+ animationName = NlaTrack
+ sunTracking = true
+ secondaryTransformName = SunPivot
+ pivotName = SunPivot
+ resourceName = ElectricCharge
+ chargeRate = 0
+}
+
+ROL_MODEL:NEEDS[ROLib]
+{
+ name = ROLib-Tsiklon
+ title = Tsiklon
+ modelName = RP-1/Parts/ContractSat/Assets/Tsiklon
+ orientation = CENTRAL
+ enableVScale = false
+ canVScale = false
+ minVerticalScale = 1.0
+ maxVerticalScale = 1.0
+ bodyNode = 0.0,2.7,0.0,0.0,1.0,0.0,2.0
+ bodyNode = 0.0,-1.5,0.0,0.0,-1.0,0.0,2.0
+ height = 3
+ diameter = 2
+ volume = 12.0
+ upperDiameter = 2
+ lowerDiameter = 2
+ animationName = NlaTrack
+ sunTracking = true
+ secondaryTransformName = SunPivot
+ pivotName = SunPivot
+ resourceName = ElectricCharge
+ chargeRate = 0
+}
+
+@ROL_MODEL[ROLib-Eurostar]:FOR[ROTanks]
+{
+ KSP_TEXTURE_SET
+ {
+ name = ROT-itsRyan-Eurostar
+ title = EuroStar
+ recolorable = false
+
+
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Anchor
+ mesh = Pivot
+ mesh = DishMount
+ mesh = SolarMount
+ mesh = PanelHinge
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/tex_01
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal046B_NRM
+
+ PROPERTY
+ {
+ name = _Color
+ color = 1, 1, 1
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = .9
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.5
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = BlackKrinkle
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/tex_01
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/foil_n
+
+ PROPERTY
+ {
+ name = _Color
+ color = 0.7, 0.7, 0.7
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = .9
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Body
+ mesh = Top
+ mesh = BodyShield
+
+
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/foil_n
+
+ PROPERTY
+ {
+ name = _Color
+ color = 1.0, 0.92, 0.02
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.9
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.9
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = SmoothBoxes
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/tex_01
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal041A_NRM
+ //texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal041A_METAL
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.5
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.7
+ }
+
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = CrinkleBoxes
+
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/tex_01
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/foil_n
+
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.9
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.9
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = BodyShieldFaces
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/grid1
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Smooth-NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/grid1
+
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = RCS
+ mesh = PannelAttach
+ mesh = PannelArm
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal041A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal041A_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal041A_METAL
+
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Panel
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/PanelPattern1
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/PanelPattern1_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/PanelPattern1_METAL
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = PanelBack
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/BackPattern1
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Smooth-NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/BackPattern1_METAL
+
+ }
+ }
+}
+
+@ROL_MODEL[ROLib-Transit1B]:FOR[ROTanks]
+{
+ KSP_TEXTURE_SET
+ {
+ name = ROT-itsRyan-Transit1B
+ title = Transit1B
+ recolorable = false
+
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Sphere
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/transitstripe
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Smooth-NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/transitstripe_METAL
+
+ PROPERTY
+ {
+ name = _Color
+ color = 1.5, 1.5, 1.5
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.5
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.5
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Belt
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Transitpanel
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Transitpanel_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Transitpanel_METAL
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = TopMount
+ mesh = BottomMount
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal041A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal041A_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal041A_METAL
+
+ PROPERTY
+ {
+ name = _Color
+ color = 1, 1, 1
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 1
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.9
+ }
+ }
+ }
+}
+
+@ROL_MODEL[ROLib-Tsiklon]:FOR[ROTanks]
+{
+ KSP_TEXTURE_SET
+ {
+ name = ROT-itsRyan-Tsiklon
+ title = Tsiklon
+ recolorable = false
+
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Body
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Solar2
+// texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Solar2_NRM
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Smooth-NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Solar2_METAL
+
+ PROPERTY
+ {
+ name = _Color
+
+ color = 1.2, 1.2, 1.2
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Top
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Solar3
+// texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Solar3_NRM
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Smooth-NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Solar3_METAL
+
+ PROPERTY
+ {
+ name = _Color
+
+ color = 1.0, 1.0, 1.0
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = AntennaMain
+ mesh = Boom
+ mesh = DishFocus1
+ mesh = DishFocus2
+ mesh = DishFocus3
+ mesh = Bottom
+ mesh = Tower
+ mesh = Mag
+
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Plastic013A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Plastic013A_NRM
+// texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Smooth-NRM
+
+ PROPERTY
+ {
+ name = _Color
+ color = 1.0, 1.0, 1.0
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.0
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.5
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = MagProngs
+ mesh = SmallDish1
+ mesh = SmallDish2
+ mesh = SmallDish3
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal041A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Smooth-NRM
+// texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal044A_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal041A_METAL
+
+ PROPERTY
+ {
+ name = _Color
+
+ color = 1.0, 1.0, 1.0
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.9
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.9
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Ball
+ mesh = DishMount1
+ mesh = DishMount2
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal046B
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Smooth-NRM
+// texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal046B_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal046B_METAL
+
+ PROPERTY
+ {
+ name = _Color
+ color = 1.0, 1.0, 1.0
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.9
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.9
+ }
+ }
+ }
+}
+
+@ROL_MODEL[ROLib-Syncom]:FOR[ROTanks]
+{
+ KSP_TEXTURE_SET
+ {
+ name = ROT-itsRyan-Syncom
+ title = Syncom
+ recolorable = false
+
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Sides
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/solar1
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Smooth-NRM
+
+ PROPERTY
+ {
+ name = _Color
+ color = 1.2, 1.2, 1.2
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.9
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.9
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Feet
+ mesh = AntennaPivot
+ mesh = Top
+ mesh = Bottom
+
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/tex_01
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Smooth-NRM
+
+ PROPERTY
+ {
+ name = _Color
+ color = 1.2, 1.2, 1.2
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.7
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.7
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Antenna
+ mesh = AntennaBase
+ mesh = Crown
+ mesh = Whip1
+ mesh = Whip2
+ mesh = Whip3
+ mesh = Whip4
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal044A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal044A_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal044A_METAL
+
+ PROPERTY
+ {
+ name = _Color
+ color = 1.5, 1.5, 1.5
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.9
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.9
+ }
+ }
+ }
+}
+
+@ROL_MODEL[ROLib-Molniya]:FOR[ROTanks]
+{
+ KSP_TEXTURE_SET
+ {
+ name = ROT-itsRyan-Molniya
+ title = Molniya
+ recolorable = false
+
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STD_SPEC
+ mesh = Body
+ mesh = Base
+ mesh = TurboPump
+ mesh = Horns
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Plastic013A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Plastic013A_NRM
+
+ PROPERTY
+ {
+ name = _Color
+ color = 1.0, 0.985, 0.92
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.2
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.3
+ }
+
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = PanelBars
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Holes1
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Holes1_NRM
+
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.05
+ }
+
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Panel
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal041A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal041A_NRM
+
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.05
+ }
+
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = GasGen
+ mesh = Shroud
+ mesh = Ribs1
+ mesh = Ribs2
+ mesh = TopShield
+ mesh = Mount
+ mesh = SphereBands
+ mesh = Spiral
+ mesh = Pivot1
+ mesh = Pivot2
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal041A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal041A_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal041A_METAL
+
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Sphere
+
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal044A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal044A_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal044A_METAL
+
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = PanelFace
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Solar5
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Solar2_NRM
+
+ PROPERTY
+ {
+ name = _Color
+
+ color = 1.0, 1.0, 1.0
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.8
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Transparent/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Top
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Solar4
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Solar4_NRM
+
+ PROPERTY
+ {
+ name = _Color
+
+ color = 1.0, 1.0, 0.5
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.8
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = SmoothBoxes
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/tex_01
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal041A_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal041A_METAL
+
+ }
+ MATERIAL
+ {
+ shader = TU/Transparent/Metallic
+ keyword = TU_STD_SPEC
+ mesh = Skin
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Mesh2
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Mesh2_NRM
+ PROPERTY
+ {
+ name = _Metal
+ float = 0
+ }
+
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Anchor1
+ mesh = DishPivot1
+ mesh = Anchor2
+ mesh = DishPivot2
+ mesh = GasGenNozzle
+ mesh = Nozzle
+ mesh = SolarBase1
+ mesh = SolarPivot11
+ mesh = SolarBase12
+ mesh = SolarPivot12
+ mesh = SolarBase2
+ mesh = SolarPivot21
+ mesh = SolarBase22
+ mesh = SolarPivot22
+ mesh = SolarBase3
+ mesh = SolarPivot31
+ mesh = SolarBase32
+ mesh = SolarPivot32
+ mesh = SolarBase4
+ mesh = SolarPivot41
+ mesh = SolarBase42
+ mesh = SolarPivot42
+ mesh = SolarBase5
+ mesh = SolarPivot51
+ mesh = SolarBase52
+ mesh = SolarPivot52
+ mesh = SolarBase6
+ mesh = SolarPivot61
+ mesh = SolarBase62
+ mesh = SolarPivot62
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal041A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal041A_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal041A_METAL
+
+ PROPERTY
+ { name = _Color
+ color = 0.5, 0.392, 0.25
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.8
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.8
+ }
+ }
+ }
+}
+
+@ROL_MODEL[ROLib-Navisat]:FOR[ROTanks]
+{
+ KSP_TEXTURE_SET
+ {
+ name = ROT-itsRyan-Navisat
+ title = Navisat
+ recolorable = false
+
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = BUS
+
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/foil_n
+
+ PROPERTY
+ {
+ name = _Color
+ color = 1, 0.78, 0.0
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0.9
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0.9
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STD_SPEC
+ mesh = RCS
+ mesh = Panel
+ mesh = Arm
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Cloudsat
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Smooth-NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Cloudsat_METAL
+
+ PROPERTY
+ {
+ name = _Metal
+ float = 1.0
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 1.0
+ }
+
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Coil
+ mesh = Cage
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal044A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal044A_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal044A_METAL
+
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Antenna
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal041A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal041A_NRM
+
+ PROPERTY
+ { name = _Color
+ color = 0.6, 0.45, 0.25
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 0
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 0
+ }
+ }
+ MATERIAL
+ {
+ shader = TU/Metallic
+ keyword = TU_STOCK_SPEC
+ mesh = Hinge
+ mesh = Cone
+
+ texture = _MainTex, RP-1/Parts/ContractSat/Assets/Metal041A
+ texture = _BumpMap, RP-1/Parts/ContractSat/Assets/Metal041A_NRM
+ texture = _MetallicGlossMap, RP-1/Parts/ContractSat/Assets/Metal041A_METAL
+
+ PROPERTY
+ { name = _Color
+ color = 0.5, 0.392, 0.25
+ }
+ PROPERTY
+ {
+ name = _Metal
+ float = 1
+ }
+ PROPERTY
+ {
+ name = _Smoothness
+ float = 1
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/GameData/RP-1/Tree/PayloadLevels.cfg b/GameData/RP-1/Tree/PayloadLevels.cfg
new file mode 100644
index 00000000000..4c2c9d3dc85
--- /dev/null
+++ b/GameData/RP-1/Tree/PayloadLevels.cfg
@@ -0,0 +1,51 @@
+// Payload Tank Upgrades
+PARTUPGRADE
+{
+ name = RFTech-ComSat-II
+ partIcon = RO-RFTank-Separate
+ techRequired = materialsScienceHuman
+ entryCost = 0
+ cost = 0
+ title = ComSatPayload Upgrade
+ basicInfo = You can now use level II Communication Equipment
+ manufacturer = Generic
+ description = Level II Communication Equpment. Max Utilization: 50% 50% lower mass per unit as compared to level I
+}
+
+PARTUPGRADE
+{
+ name = RFTech-ComSat-III
+ partIcon = RO-RFTank-Separate
+ techRequired = materialsScienceSpaceStation
+ entryCost = 0
+ cost = 0
+ title = ComSatPayload Upgrade
+ basicInfo = You can now use level III Communication Equipment
+ manufacturer = Generic
+ description = Level III Communication Equpment. Max Utilization: 100% 50% lower mass per unit as compared to level II
+}
+PARTUPGRADE
+{
+ name = RFTech-NavSat-II
+ partIcon = RO-RFTank-Separate
+ techRequired = materialsScienceHuman
+ entryCost = 0
+ cost = 0
+ title = NavSatPayload Upgrade
+ basicInfo = You can now use level II Navigation Equipment
+ manufacturer = Generic
+ description = Level II Navigation Equpment. Max Utilization: 50% 50% lower mass per unit as compared to level I
+}
+
+PARTUPGRADE
+{
+ name = RFTech-NavSat-III
+ partIcon = RO-RFTank-Separate
+ techRequired = materialsScienceSpaceStation
+ entryCost = 0
+ cost = 0
+ title = NavSatPayload Upgrade
+ basicInfo = You can now use level III Navigation Equipment
+ manufacturer = Generic
+ description = Level III Navigation Equpment. Max Utilization: 100% 50% lower mass per unit as compared to level II
+}
\ No newline at end of file
diff --git a/Source/Properties/AssemblyInfo.cs b/Source/Properties/AssemblyInfo.cs
index 89a42b53f46..c46e223208a 100644
--- a/Source/Properties/AssemblyInfo.cs
+++ b/Source/Properties/AssemblyInfo.cs
@@ -38,9 +38,9 @@
[assembly: AssemblyInformationalVersion("@ASSEMBLYINFORMATIONALVERSION@")]
[assembly: KSPAssembly("RP-0", @MAJOR@, @MINOR@)]
#else
-[assembly: AssemblyFileVersion("2.8.1.0")]
-[assembly: AssemblyInformationalVersion("2.8.1.0")]
-[assembly: KSPAssembly("RP-0", 2, 8)]
+[assembly: AssemblyFileVersion("2.12.1.0")]
+[assembly: AssemblyInformationalVersion("2.12.1.0")]
+[assembly: KSPAssembly("RP-0", 2, 12)]
#endif
[assembly: KSPAssemblyDependency("ModularFlightIntegrator", 1, 0)]
diff --git a/Source/RP0.csproj b/Source/RP0.csproj
index 0eafc691683..ebb3e795c18 100644
--- a/Source/RP0.csproj
+++ b/Source/RP0.csproj
@@ -193,6 +193,7 @@
+
diff --git a/Source/UpgradeScripts/v2_12_1RemovePayload.cs b/Source/UpgradeScripts/v2_12_1RemovePayload.cs
new file mode 100644
index 00000000000..71092d5f94a
--- /dev/null
+++ b/Source/UpgradeScripts/v2_12_1RemovePayload.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Linq;
+using SaveUpgradePipeline;
+using UnityEngine;
+
+namespace RP0.UpgradeScripts
+{
+
+ [UpgradeModule(LoadContext.Craft, craftNodeUrl = "PART/RESOURCE")]
+ public class v2_12_1RemovePayload : UpgradeScript
+ {
+ public override string Name { get => "RP-1 Payload Upgrader"; }
+ public override string Description { get => "Removes WeatherSatPayload, ComSatPayload and NavSatPayload from older Tanks"; }
+ public override Version EarliestCompatibleVersion { get => new Version(2, 0, 0); }
+ protected static Version _targetVersion = new Version(2, 12, 1);
+ public override Version TargetVersion => _targetVersion;
+
+ public override TestResult OnTest(ConfigNode node, LoadContext loadContext, ref string nodeName)
+ {
+ ConfigNode.Value v = null;
+ if (node.name == "RESOURCE" && (v = node.values.values.Find(s => s.name == "name")) != null)
+ {
+ if (v.value == "ComSatPayload" || v.value == "NavSatPayload" || v.value == "WeatherSatPayload")
+ {
+ return TestResult.Upgradeable;
+ }
+ }
+
+ return TestResult.Pass;
+ }
+
+ //upgrade the craft
+ public override void OnUpgrade(ConfigNode node, LoadContext loadContext, ConfigNode parentNode)
+ {
+ ConfigNode.Value v = null;
+ if (node.name == "RESOURCE" && (v = node.values.values.Find(s => s.name == "name")) != null)
+ {
+ if (v.value == "ComSatPayload" || v.value == "NavSatPayload" || v.value == "WeatherSatPayload")
+ {
+ Debug.Log($"[RP-1] UpgradePipeline removed {v.value} from {node.name}");
+ node.ClearData();
+ }
+ }
+ }
+ }
+}