Crash or unable to save from unknown TargetingGroup in turrets / MyStringHash fails to find string

Digi shared this bug 33 hours ago
Reported

The crash is from trying to display a targeting group that no longer exists, and the unable to save is because of the same thing when having a block like that in world.


Easy to reproduce:

1. Restart the game if already started, it needs to be a fresh launch.

2. In any vanilla world paste this blueprint: https://steamcommunity.com/sharedfiles/filedetails/?id=3667254774

3. Try to save world and you'll see that it does not want to.

4. Enter the cockpit for the crash.


Both issues stem from the same thing, I've dug why this happens and it's because the blueprint's turret has:

<TargetingGroup>MES-TargetingGroup-Communications</TargetingGroup>
Which is added by the MES mod, but the mod is not present so when it tries to convert from a hash integer (loaded from the .sbcB5 binary cache) back into a string and errors because the string does not exist as it wasn't loaded from definitions.

This also happens for worlds (which is very likely what happened in this report), removing a mod that added targeting groups that were used in blocks will prevent the world from saving.


This does seem to be a violation of MyStringHash because the xmldoc on it says "Can be safely used in network but never serialize to disk!", for cases like these I suspect :P (and MyStringId cannot be safely used in either network or disk).

The better fix would be to change all MyStringId/MyStringHash from objectbuilders that get saved to worlds/blueprints (so skip all that end in *Definition).

Replies (1)

photo
1

Hello Digi,

Thank you for reaching our forum with this issue.

Issue was successfully reproduced on our side, and we have added it into our internal system.

Kind regards,

Keen Software House: QA Department

Leave a Comment
 
Attach a file