Project

General

Profile

Bug #27203

Contract "Attach new part to satellite in orbit of..." Fails to tell the player the target vessel.

Added by Dunbaratu 28 days ago. Updated 20 days ago.

Status:
New
Severity:
Low
Assignee:
-
Category:
Contracts
Target version:
-
Start date:
02/01/2021
% Done:

0%

Version:
Platform:
Windows
Expansion:
Core Game
Language:
English (US)
Mod Related:
No
Votes:
Arrow u r green
Arrow d r red

Description

The three screenshots show what I mean. I took the contract "Attach new part to satellite in orbit of Kerbin".

The contract spawns a new satellite you're supposed to attach a part to.

But the contract never displays to the player anything about which vessel that is, so the player has to guess (Mostly by going, "Oh that vessel doesn't look like one I made, I guess it's that one.")

screenshot20.png (418 KB) screenshot20.png contract description lacks the vessel name Dunbaratu, 02/01/2021 05:00 AM
screenshot21.png (1.68 MB) screenshot21.png summary contract info in the panel lacks the vessel name Dunbaratu, 02/01/2021 05:01 AM
screenshot19.png (1.49 MB) screenshot19.png I think it's this vessel, by process of elimination. Dunbaratu, 02/01/2021 05:01 AM
quicksave.sfs (3.43 MB) quicksave.sfs Dunbaratu, 02/01/2021 05:53 AM
persistent.sfs (5.84 MB) persistent.sfs Anarchomine, 02/01/2021 12:41 PM
56025
56026
56027

History

#1 Updated by Dunbaratu 28 days ago

More Information - actually that vessel did NOT allow the contract to work. The contract is still using the wrong vessel ID so the contract is impossible to finish.

This is from the save file - notice the contract vessel in the game save has this as its perisstent ID:

        VESSEL
        {
            pid = 2b279f03e4a44243a19e216a7364d6dc
            persistentId = 2975859883
            name = Aging Kerbin CM-R Satellite G4-VK
            type = Probe

This is the contract - note the section for the PARAM with the vessel id = 1090049104

            CONTRACT
            {
                guid = 6c9b3f59-0c29-43ee-a6bc-c0588b28d387
                type = OrbitalConstructionContract
                prestige = 0
                seed = 2083280414
                state = Active
                viewed = Read
                agent = Rockomax Conglomerate
                agentName = Rockomax Conglomerate
                deadlineType = Floating
                expiryType = Floating
                values = 77263.5842981471,16457143.4555053,19966.1530512736,65513.9367243029,20764.7984802246,0,1.024133,2,1870803.07266182,1857631.28189065,18314774.737396,0
                bodyName = Kerbin
                constructionCraftDef = D:/SteamLibrary_2/steamapps/common/Kerbal Space Program/KSP_x64_Data/../GameData/Squad/Contracts/PreBuiltCraft/OrbitalConstructionContract/Unfinished Contract Sat 6.craft
                constructionVslId = 1090049104
                constructionPartName = HighGainAntenna5.v2
                orbitEccentricity = 0.05000000074505806
                orbitAltitudeFactor = 0.33000001311302185
                orbitInclinationFactor = 0.25
                vesselName = Aging Kerbin CM-R Satellite G4-VK
                PARAM
                {
                    name = CrewTraitParameter
                    state = Complete
                    disableOnStateChange = False
                    values = 0,0,0,0,0
                    targetTrait = Engineer
                    targetCount = 1
                    vesselDescription = Active Vessel
                }
                PARAM
                {
                    name = ConstructionParameter
                    state = Incomplete
                    values = 0,0,0,0,0
                    bodyName = Kerbin
                    partName = HighGainAntenna5.v2
                    vesselPersistentId = 1090049104
                }
            }

The Id number of the vessel the contract spawned was 2975859883. The vessel Id number the contract says I'm supposed to add the antenna to is 1090049104. Because they don't match, and furthermore there are no vessels with Id = 1090049104, the contract is impossible.

quicksave attached for reference.

I'd change the title but users no longer have permission to do that, it seems.

The real bug seems to be the vessel ID of the contract does not match the vessel actually spawned, so the contract is literally impossible.

#2 Updated by Anarchomine 28 days ago

Got the same bug:

            CONTRACT
            {
                guid = 12296993-daf2-4215-8237-69ec1574fd8b
                type = OrbitalConstructionContract
                prestige = 0
                seed = 1155645586
                state = Active
                viewed = Read
                agent = Research & Development Department
                agentName = Research & Development Department
                deadlineType = Floating
                expiryType = Floating
                values = 43200,18403200,28800,90000,28800,0,2,2,2980658.06212168,2937476.34212169,21340676.3421217,0
                bodyName = Kerbin
                constructionCraftDef = C:/Program Files (x86)/GOG Galaxy/Games/Kerbal Space Program/KSP_x64_Data/../GameData/Squad/Contracts/PreBuiltCraft/OrbitalConstructionContract/Unfinished Contract Sat 6.craft
                constructionVslId = 269795072
                constructionPartName = rcsTankRadialLong
                orbitEccentricity = 0.05000000074505806
                orbitAltitudeFactor = 0.33000001311302185
                orbitInclinationFactor = 0.25
                vesselName = Aging Kerbin AS-P Satellite X00TD
                PARAM
                {
                    name = CrewTraitParameter
                    state = Complete
                    disableOnStateChange = False
                    values = 0,0,0,0,0
                    targetTrait = Engineer
                    targetCount = 1
                    vesselDescription = Active Vessel
                }
                PARAM
                {
                    name = ConstructionParameter
                    state = Incomplete
                    values = 0,0,0,0,0
                    bodyName = Kerbin
                    partName = rcsTankRadialLong
                    vesselPersistentId = 269795072
                }
            }
        VESSEL
        {
            pid = e8c8e6d42e9140fc8849138b01560134
            persistentId = 2074516608
            name = Aging Kerbin AS-P Satellite X00TD
            type = Probe
            sit = ORBITING
...

Edit: Changing the vessel ID in the contract to that from the vessel entry let me complete the contract.

#3 Updated by Dunbaratu 21 days ago

Anarchomine wrote:

Edit: Changing the vessel ID in the contract to that from the vessel entry let me complete the contract.

Hmm - here's an interesting thing to test the next time this "can't see which vessel it means in the contract" thing happens: Exit the mission control building without taking the contract, save the game, edit the save to see if it has the vessel ID mismatch problem and if so fix the mismatch, then reload the save and go back to the mission control to look at the contract again.

If that's done, will the contract also show the vessel name to the player?

In other words, this would be a test to find out if the original problem I reported here (can't see the vessel name) might actually just a side-effect of the bigger problem. (That maybe it can't populate the vessel name in the contract text because it normally would find the name by looking it up from the vessel's ID, which is wrong?)

#4 Updated by [email protected] 20 days ago

I'm seeing the same problem, but it looks like the vessel doesn't get created until the contract is accepted
for example I have this contract and there is no matching "Aging Kerbin MLA Satellite M-J6Z" vessel.

CONTRACT
            {
                guid = 7ece60ab-5a2f-484b-a607-c3e5ad21e26c
                type = OrbitalConstructionContract
                prestige = 0
                seed = 1425354744
                state = Offered
                viewed = Read
                agent = Maxo Construction Toys
                agentName = Maxo Construction Toys
                deadlineType = Floating
                expiryType = Floating
                values = 64800,18403200,28800,90000,28800,0,2,2,24885906.1733801,0,0,0
                bodyName = Kerbin
                constructionCraftDef = E:/Steam/steamapps/common/Kerbal Space Program/KSP_x64_Data/../GameData/Squad/Contracts/PreBuiltCraft/OrbitalConstructionContract/Unfinished Contract Sat 1.craft
                constructionPartName = mediumDishAntenna
                orbitEccentricity = 0.05000000074505806
                orbitAltitudeFactor = 0.33000001311302185
                orbitInclinationFactor = 0.25
                vesselName = Aging Kerbin MLA Satellite M-J6Z
                PARAM
                {
                    name = CrewTraitParameter
                    state = Incomplete
                    values = 0,0,0,0,0
                    targetTrait = Engineer
                    targetCount = 1
                    vesselDescription = Active Vessel
                }
                PARAM
                {
                    name = ConstructionParameter
                    state = Incomplete
                    values = 0,0,0,0,0
                    bodyName = Kerbin
                    partName = mediumDishAntenna
                    vesselPersistentId = 0
                }
            }

And yeah, when I accept the contract and check the tracking station. The Aging Kerbin MLA Satellite M-J6Z is there with a mission elapsed time of a couple seconds. Then the save file now has the vessel entry and has a bad vessel id on the contract as seen above.

Also available in: Atom PDF