Kerbal Inventory System (KIS)

Kerbal Inventory System (KIS)

1M Downloads

Items added to crewable parts in VAB invisible until crewed yet add mass

SCESW opened this issue ยท 7 comments

commented

I added items (wrench, etc) to crewable pods (stock and modded) and saved them down so that I would always remember to have one on hand, just in case.

Then, I added unmanned command modules (Probodobodyne) to the ships and sent them to my station to retrieve crew from there.
When the pods were in the VAB, I could see the items in the inventory and they added mass to the ship.
When I moved the ship to the launch pad, the inventory was inaccessible yet the mass is still showing up.

After I docked with the station the inventory was still unavailable yet the mass was there.
Finally, after adding a crew to the pod, the items I added in the VAB showed up and were retrievable.
This may be a simple oversight that adding an "Inventory" button to an uncrewed pod may solve.

My concern is that it is possible to add mass to a ship and not know that it is there until it is crewed.
I took some screenshots to show the changes in mass from VAB to launch pad and the lack of an inventory notification in the uncrewed pad outside of the VAB.

http://i.imgur.com/CjSfJWu.jpg?1

commented

You are saying that it is a bug... yet I am wondering if it could be made into a 'feature'.
Since the game remembers what items were put into the empty pod in the VAB, and then gave those items to a crew member on the orbital station when I flew my ship up there from Kerbin, doesn't that technically mean that the pod does have an inventory? It would certainly seem so based on the mass increase and the fact that the game engine remembers the items that were put in there in the VAB.

The only catch is that it can't be accessed unless a crew member is inside the pod.
That is why I asked about an Inventory button. If the data is saved some place, it should be able to be retrieved, whether a crew member is in the pod or not (unless it is only temporarily saved and not saved between games restarts).
I suppose a work around would be to assign an invisible massless storage box to each pod and have an Inventory button that accesses the invisible storage box creating the illusion that the pod is in fact a storage box. (smoke and mirrors)

If so, wouldn't that be exactly the same as the pod being a storage box, as well as a crew seat?

commented

Seat's inventory is not a real inventory by the design. It's only introduced to store items when a crew member is transferred. Adding items in the editor is a convince option to allow assigning kerbal's inventory with items if one is assigned to the seat. If there is no crew member in the seat then there must be no items there. I'm pretty sure the items you've seen on the orbit were items of the crew member which you've transferred.

There real bug here is wrong mass. Items must not be assigned to the vessel if the seat is not occupied.

commented

Since the game remembers what items were put into the empty pod in the VAB, and then gave those items to a crew member on the orbital station when I flew my ship up there from Kerbin, doesn't that technically mean that the pod does have an inventory?Since the game remembers what items were put into the empty pod in the VAB, and then gave those items to a crew member on the orbital station when I flew my ship up there from Kerbin, doesn't that technically mean that the pod does have an inventory?

When kerbal is transferred into a pod's seat its personal inventory completely replaces the pod's inventory. If you transfer crew member and see different behavior then it means the original kerbal's inventory has been lost. I.e. this is a bug. Could you please demonstrate this behavior with a video or screenshots? Just ensure that you send on the orbit different items than already exist in the crew member inventory.

Pod's inventories are not inventory containers. It's a temporary storage location for the items when crew member sits is in the pod. If you need a container you should add it to the vessel using KIS container parts. Or you may make your custom pod that has an inventory container built-in.

commented

I spent a few hours testing this and what I found is very interesting. It either points to bad pointers (lack of memory clean-up) in the core code or possibly a way to access data that people are unaware can still be accessed in the save files.

In other words, if there is invisible mass from KIS items, it may be possible that there is invisible mass from other KSP items and mods that cause un-reproducible bugs that might give the illusion of bad aerodynamics or weight issues causing rockets to list on one person's game but not another person's.

Hopefully my testing proves helpful.
http://imgur.com/a/t66RD

commented

Hey! Thanks for the comprehensive investigation. I haven't time to thoroughly check it but I will. One thing I noticed you use non-stock orbital station parts. The problem with them is that pods are not always KIS compatible (mod's author have to spend some efforts to make it compatible). Usual cases:

  • Part's config doesn't define containers for the seats. Basically, the behavior is undefined in this case. Whatever you see will likely be a bug.
  • Part has variable number of seats (e.g. "inflatable" parts), and this is not correctly handled with regard to KIS. Again, the behavior is undefined.

I'll check your screens later but just in case: if you use non-stock parts that don't support KIS then you may witness a very strange behavior.

commented

Sorry, had no time to come back to it early. First of all, thanks a lot for the very detailed investigation! I'm really appreciated you've spent that much time on it :)

Now, that's what I can say basing on your experiments:

  1. There is indeed a problem with mass of the uncrewed pods. By design seat's inventory at a non-occupied seat must be empty. I.e. it cannot be used for sending stuff out unless there is a crew member at that seat. So, your tests reveal a bug which I confirm: items in free seats are not cleared at launch. I was able to reproduce it (which means it will be fixed): #154.
  2. When crew member is moved between pods his/her personal (seat's) inventory must be moved with the kerbuanaut even if it's empty. I.e. if kerbanaut had empty inventory before the transfer it should stay empty after it. This issue I cannot reproduce for now. My only guess is that you use non-stock pods that may not support KIS correctly. Can you reproduce the same behavior with a stock source pod?
commented

I've actually figured out case 2. Existing implementation only moves items if there are some in the source inventory. If there were none then target inventory is not changed at all resulting in magic re-appearing of the hidden items. With #154 fixed it's no more an issue.