I posted this elsewhere as well but thought I would add it here in case someone here found it in any way interesting or useful.
I have done some of my own testing and experimenting and I think I have come up with a working hypothesis on what is going on with saved items with regard to how they impact file size. Note, this is just a working hypothesis! I haven't done near enough testing to say anything conclusive. This is mostly food for thought and perhaps something for others to base more testing on. Also note that I talk about items mainly but that can be expanded to NPCs and other things in the world.
I did the following experiment a few times in a few different places:
- Entered a brand new area my character had never been and walked around but did not loot or touch anything at all: notable save file size increase
- Looted everything in the area into my inventory: small file size DECREASE from previous
- Broke down everything I just looted into components: very slight file size decrease from previous
Here is how I think item storage in saves works... When you enter a new area for the first time, all items in that area are instantiated into the word and become part of your save for the first time, because now the game must keep track of them and where they are. After entering a location for the first time your save might have something like this:
ItemID:001 Location: x-123, y-234, z-456 Rotation:
ItemID:002 Location: x-123, y-234, z-456
ItemID:003 Location: x-123, y-234, z-456
ItemID:004 Location: x-123, y-234, z-456
ItemID:005 Location: x-123, y-234, z-456
Once you loot everything it might look something like:
ItemID:001 Location: Main inventory
ItemID:002 Location: Main inventory
ItemID:003 Location: Main inventory
ItemID:004 Location: Main inventory
ItemID:005 Location: Main inventory
Once you then delete the item (break it down or maybe sell it to a terminal and wait for it to expire)
ItemID:001 Location: Deleted
ItemID:002 Location: Deleted
ItemID:003 Location: Deleted
ItemID:004 Location: Deleted
ItemID:005 Location: Deleted
It actually makes sense that once an item is instantiated into your save (you get near it for the first time) the game must forever keep track of its ID and location even if you completely delete it. Otherwise, when you return to that area in the future, the game would not know that you have already picked up the item and it would be there for you to pick up again. It also appears that storing that the item as present in your inventory takes less storage space than storing its coordinates/rotation in the world (makes sense) and storing that the item is deleted takes least storage space of all (but it's still there).
This also seems to explain many of the things people are reporting. It would explain why quests that drive you around cause a big increase in your save file size because you are being brought past new areas for the first time and many new items are getting initially created. It could explain why items expiring in a vendor/drop box or getting broken down seem to slightly decrease file size (it's less expensive to store Item:deleted compared to Item:In Drop Box 00017).
It could also explain the differences people who have gone for 100% experience. Perhaps some people who have 100% went very directly from one point of interest to another, where others might have spent a lot of time driving around and instantiating every last bit of Night City.
If this is at all correct, the big takeaway would be that once you visit an area, looting all the stuff in it
does not make the problem worse, it actually slightly helps!
Now Enter Crafting...
If the above is true, there are a finite number of things out in the world for you to find, and so the space it takes to store the status of all of those things is also finite and predictable. Unless I am mistaken, this is one of the major differences between this and something like Fallout 4 where the cells eventually reset over time, giving that game the ability to eventually actually forget the state of in world locations, supporting infinite play (and saves). However, when you start making brand new items that were never in the game by crafting, all of those items would be subject to the situation described above. Now, you could potentially have an unlimited amount of things for your save to keep track of.
If crafted items are treated the same, once you create something, like a new gun, the ID and location of that gun now must forever be tracked, even if it's GunID:0043 Location: Deleted. Since crafted items were never placed out in the world, and the game does not need to remember that it shouldn't be out there anymore, I would think the design should be such that when a crafted item is removed from the world it should be fully forgotten. However, it may be that it is treated like any other item and remembered forever, and this might be the real root of the issue.
Things I still want to test:
- Does crafting a stackable item directly into your inventory get tracked individually the moment it is created or not until it is somehow split from the stack (like you craft 10 grenades and sell 1 of them). If they get tracked individually from creation and forever, that is an issue.
- Does upgrading the stats on an existing item through crafting just change the attributes associated with that single item, or does it create a brand new item every time and behind the scenes delete (and still track) the old one. If so that is also an issue.
- Does incapacitating NPCs generate new items as they drop, or are they already created and in existence on their person like a container, and along with this, are items in containers generated on opening the container.
Again, this is all just a working hypothesis at best, I have definitely not done enough experimenting and testing to demonstrate anything with much confidence. I just found it all to be very interesting. Hopefully this is helpful to someone.