space-wizards / space-station-14

A multiplayer game about paranoia and chaos on a space station. Remake of the cult-classic Space Station 13.
https://spacestation14.io
MIT License
2.61k stars 3.26k forks source link

deleting doesnt unlink while mapping #28918

Open deltanedas opened 3 months ago

deltanedas commented 3 months ago

Description

it can best case leave you with invalids and worst case (multiple deleted things) prevent saving the map with no warning

Reproduction

  1. spawn a button and 2 blast doors
  2. link the button to toggle
  3. delete the blast doors
  4. no longer able to save the map
metalgearsloth commented 3 months ago

This also causes funtime spam for pvs.

IamVelcroboy commented 3 months ago

Similar issue, probably needs the same solution. #28274

ElectroJr commented 3 months ago

no longer able to save the map

As in, you are literally unable to use the save command? or just that the map has invalid ids and that cause some test or something to fail? Because I can still save & load the map fine, even in debug mode (though it does have an invalid ent on it).

IamVelcroboy commented 3 months ago

no longer able to save the map

As in, you are literally unable to use the save command? or just that the map has invalid ids and that cause some test or something to fail? Because I can still save & load the map fine, even in debug mode (though it does have an invalid ent on it).

It will occasionally give an error that you have "invalids" or "entity ID of 0" and not allow you to save the map. I believe it happens most with switches/buttons/levers linked to lights or shutters that get deleted. In this case you have to find the relevant button and delete it for the map to save.

deltanedas commented 3 months ago

As in, you are literally unable to use the save command? or just that the map has invalid ids and that cause some test or something to fail? Because I can still save & load the map fine, even in debug mode (though it does have an invalid ent on it).

having 1 invalid is fine but if you have multiple it will try save 2 invalids to a hashset and clearly thats worth throwing over