Projector use causing HUGE increase in sandbox.sbc size and blueprint block count errors

Thrak shared this bug 34 days ago
Considered

Tested in 1.191.106 single-player vanilla survival Also seen in DS survival

Projector blocks, after use, appear to retain data such that, over time, there is a huge increase in both the size of the SANDBOX_0_0_0_.sbs file AND individual blueprint.sbc files... even when no new blocks are added to the grid. Blueprints created, even with the projector turned off, show a much higher block count than what actually exists.

To Reproduce:

1) Create a new single-player world.

2) Build or paste-in a ship using creative mode.

3) Set up a projector and align the grid's blueprint to the grid.

4) Turn off projector.

5) Re-blueprint the ship, save the game and note the increases in file sizes.

The offending projector blocks need to be ground down in order to restore files to normal size.

This serious bug has a cumulative, adverse affect on game performance... and it can manifest very quickly in a multiplayer environment.

Comments (5)

photo
1

Further information: Using the "Remove" button and then turning off the projector seems to remove the affecting data. However, the "Keep Projection" toggle, unchecked, has no effect-- the bloat remains.

photo
1

I think this is working by design. Projector blocks save their blueprints "by value" rather than "by reference" - they take a copy of the largest grid in the blueprint and store all that data in their innards. So, your second blueprint contains the XML data of the blocks of the ship twice - once in the actual grid, and again inside the projector.

Frankly, it would be much better if projectors stored their blueprint data by reference - if they stored the Blueprint ID and nothing more. As well as avoiding the duplication resulting in file size increases, it would mean that you could set up a repair projector, update the original blueprint, and the projector in the blueprint would also be set up. As it is, if you have two repair projectors which project the same grid, and one is destroyed and you rebuild it from the second's projection, the new projector won't contain a blueprint. You have to do multiple rounds of blueprinting, setting the projectors and re-blueprinting, each time growing your file size exponentially.

Projectors working by reference would mean that the game would need to automatically publish any blueprint referenced by a projector in any blueprints you published, so others using your blueprint would also get properly set up projectors, but that doesn't seem like it would be difficult. If it referred to an unpublished blueprint other than itself, it could confirm with you when you publish - "This blueprint also refers to (other blueprint(s)), they will also be published, do you want to proceed?"

photo
1

Your thoughts about referencing are interesting. Keen could explore them as a suggestion. However, it seems to me the more immediate solution is to make the "keep projection" toggle function as it should, so that projector data is not saved in the sandbox.sbc if that toggle is unchecked.

photo
1

That's fair. The projector stops projecting the blueprint when the "keep projection" checkbox is off and the grid is complete, and you can't toggle the checkbox on retroactively or change any of the offsets when in that state (which is a pain in itself), which means that you have to change the blueprint to something else before the projector does anything again anyway. As such, there's no point in keeping the previous blueprint data stored in the projector once it's complete and the checkbox is off.

photo
photo
1

Hello, Engineer!


Thank you for your feedback! Your topic has been added between considered issues.

Please keep voting for the issue as it will help us to identify the most serious bugs.


We really appreciate your patience.


Kind Regards

Keen Software House: QA Department