zahar0z, а ваш скрипт работает? Есть подозрение на s_dwe_fa[0], так как если не задаватать индексы вручную, то по умолчанию таблицы здесь индексируются с 1.
Чтобы работало для всех зданий, просто обойти все с помощью цикла:
s_dwe_fa=GetObjectNamesByType("BUILDING_FAIRIE_TREE");
for i, dwe in s_dwe_fa do
ReplaceDwelling(dwe, TOWN_PRESERVE, 991 );
end
Чтобы работало на всех картах, наверное надо править какой-нибудь скрипт из data.pak/scripts/: advmap-startup.lua или advmap-common.lua или common.lua.