MSFD О References Persist
Окно объектов в TES CS есть переключатель "References persist".
Этот флаг делает объект уникальным не позволяя создавать его копии на автомате, как можно видеть по SSG, где 99% объектов имеют пометку "clone".
Т.е. не столько "всегда доступным" сколько "совершенно уникальным", что и позволяет игре вызывать оный объект всегда и в любой ситуации.
Его включение означает, что копия объекта все доступна в скрипте, даже когда игрок в другой ячейке, или еще не встретил объект.
Если скрипт использует особую ссылку на объект, например:
RefObject->Enable
Тогда RefObject должен иметь References persist включенным.
Косвенные ссылки:
PlaceAtMe my_object 1 1 1
Player->AddItem my_object 1
Обычно не требуют references persist, но некоторые функции являются исключениями, например:
GetDistance, RefObject
Требует, чтобы RefObject был помещен в игровой мир и имел references persist.
Актеры (NPC и Существа) всегда имеют references persist.
(Спасибо Nigedo за информацию)
Примечание.
Тут вопрос, что с копиями? Т.е. один Фаргот который всегда в мире, это да. Но что со спавном Скальных наездников, у которых в игре ID имеет 00000хххх дополнение.
Т.е. вызов из скрипта уникального Актера будет работать, но вот вызов не уникального Алита00000002 (где 0000002 видно только в игре через консоль) вопрос другой.
При этом, какой именно Алит стоит перед игроком узнать заранее никак не возможно. Он может быть и 000003 и 00000122.
Т.е. с не уникальными объектами поможет только локальный скрипт, помещенный на сам объект, через меню Script в редакторе.
Впрочем об этом, в МСФД рассуждают далее в другой заметке. Но здесь, это было бы весьма полезно заметить.
Примечание.
Слишком большое кол-во References persist объектов в скрипте в сцене и в плагине - не доводит до добра.
Игра может начать "путаться" и выдавать совершенно неожиданные баги.