Альтернатива есть, называется руки из правильного месте. Для начала правильно настроить в types время жизни ваших объектов (центральная экономика может делать все что душе угодно с тем, что в нее не прописано, все притензии к авторам игры, потому прописываем. Чтобы не спавнило в здания - смотрим пример у любой крафтовой вещи.).
Затем - правильно выставляем lifetime и restock ограничения в конфиге скрипта, чтобы было время жизни у нашего отспавненног оскриптом объекта, была корректная очистка после спавна и таймаут ожидания нового. Скрипт сам очищает после удаления события землю в той точке, где спавнил объект. Разумеется при условии, что указана верная координата, т.к. радиус скана от точки спавна на наличие прописанного объекта весьма мал, ну и при условии, что объект на точки, а не некий Вася его унес. Ну и перед спавном нового тоже чистит на всякий, если есть. Единственный баг, о котором уже говорил хрен знает сколько - переспавн до рестарта будет в той же точке, что выпала. Исправление этого на внутреннем тестировании уже 2 года, и из-за критической нехватки времени, без понятия когда будет в релизе. Но это единственный способ исправить эту проблему, т.к. более 50% кода для этого пришлось переписать.
Также, сам скрипт берет таймаут отсчета от момента старта сервера постоянно. Он не запоминает тайминги с рестартами, после старта спавн и таймауты текут с нуля заного у объектов. И соответственно, с рестартами он также проверяет также точки, что в конфиге у вас стоят. Но тут также есть нюанс. Вангую, у вас рестарт сервера в 50% случаев не плановый. Так вот, если вы меняли json, правили точки спавна и не сделали вайп карты после этого - можете быть счастливы, скрипт оставит где-то на карте старый отспавненный объект, и его вычищать буквально ручками.
В остальном, если у вас объект ушел из точки спавна, не верно выставлено время, он также может остаться. Иных причин ему остаться попросту не может быть.