Насчёт бесконечного поиска минералов. Это похоже всё-таки миф.
Шанс найти более ценные минералы зависит от навыков старосты и рассчитывается по формуле:
(Конструктор + Наблюдатель)/4 + рандом( от 0 до 100) > шанса найти определённые минералы
Никакого прибавления старых минералов к новым нет. Просто если новое значение больше старого, то оно заменяется на новое.
Это значит, что теоретически, даже если прокачать старосте конструктора и наблюдателя всего до 4 в сумме, то с помощью save\load можно после первого поиска найти максимально ценные минералы.
скрипт поиска минералов("get_mineral_value",
[
(store_script_param_1, ":var0"),
(store_random_in_range, ":var1", 0, 100),
(assign, ":var2", 0),
(try_begin),
(gt, ":var0", -1),
(assign, ":var3", 0),
(party_get_slot, ":var4", ":var0", 293),
(store_skill_level, ":var5", 8, ":var4"),
(val_add, ":var3", ":var5"),
(store_skill_level, ":var6", 13, ":var4"),
(val_add, ":var3", ":var6"),
(val_div, ":var3", 4),
(val_add, ":var1", ":var3"),
(try_end),
(try_begin),
(lt, ":var1", 20),
(assign, ":var2", 10),
(else_try),
(lt, ":var1", 40),
(assign, ":var2", 20),
(else_try),
(lt, ":var1", 60),
(assign, ":var2", 30),
(else_try),
(lt, ":var1", 80),
(assign, ":var2", 50),
(else_try),
(le, ":var1", 89),
(assign, ":var2", 80),
(else_try),
(le, ":var1", 94),
(assign, ":var2", 100),
(else_try),
(le, ":var1", 97),
(assign, ":var2", 150),
(else_try),
(le, ":var1", 100),
(assign, ":var2", 200),
(else_try),
(assign, ":var2", 300),
(try_end),
(assign, reg57, ":var2"),
кусок кода, где устанавливается новое значение ценности минералов (eq, ":var1", 292),
(assign, ":var2", 10),
(call_script, "script_get_mineral_value", ":var0"),
(party_get_slot, ":var7", ":var0", 291),
(lt, ":var7", reg57),
(party_set_slot, ":var0", 291, reg57),
Если же значение ценности минералов у кого-то становится больше 300, то это явный баг, а не фича. Рекомендую послать багрепорт разрабам.
По крайней мере других умоминаний минералов к коде я не нашёл.