Режим не очень серьёзный. Глаза - глазами, а на слух неписи как собаки, прям! На зверьё прозрачный режим ГГ не действует. Это - пример. Браз что-то сделал, надеюсь лучше, чем у меня.

Создаём пустой файл в \scripts\trans_outfit.script и создаём две функции:

function transparent_gg() --назовём её для памяти - "хулиганы зрения лишают!"

local fov1, range1, id, obj_around, alife_obj, dist_act_npc
if db.actor == nil then
return nil
end

--если ГГ голый

if db.actor:item_in_slot(7) == nil then
fov1 = 150
range1 = 80

--если на ГГ одет костюм новичка

elseif db.actor:item_in_slot(7):section() == "novice_outfit" then

fov1 = 1
range1 = 1

--если на ГГ одет другой броник

else
fov1 = 150
range1 = 80
end

--задача предыдущего куска проанализировать, что надето на ГГ и установить
--соответствующие угол обзора и дальность зрения
--
--дальше перебор ВСЕХ объектов в игре по его id

for id = 1, 65534 do
obj_around = level.object_by_id(id) -- создаём онлайн объект
if obj_around ~= nil and IsStalker(obj_around) then --если есть такой и это сталкер

--создаём серверный объект, соответствующий онлайновому
--сам обескуражен, что не смог определить дистанцию по онлайновому объекту
--ну, наверное, мало рыл

alife_obj = alife():object(id)
if alife_obj then

--определяем дистанцию между ГГ и неписем

dist_act_npc = db.actor:position():distance_to(alife_obj.position)
end
if dist_act_npc <= 120 then --отличаясь огромным человеколюбием я решил не бросать

--в беде ослеплённых сталкеров и восстанавливать им зрение в кольце 120-150 метров.
--ну жалко их, болезных

if obj_around then - проверка обязательна иначе может быть

--вылет при убийстве вражины

obj_around:set_fov(fov1) --портим неписю угол зрения
obj_around:set_range(range1) --портим неписю дальность зрения
end
else
if obj_around then --если непись в кольце 120-150м восстанавливаем зрение
obj_around:set_fov(150)
obj_around:set_range(80)
end
end
end
end
end

--а это стартёр нашей функции "хулиганы зрения лишают!"
--тупой до бесконечности, когда я подоткнулся к таймерам Николая - диалоги начали мелькать.
--но мы ж не таймеры разучиваем. Принцип прост. Вызов ф-ции подтыкаем в апдейт биндера актёра
--и каждый раз наращиваем, предварительно созданную, глобальную переменную на 1 единичку.
--на 50 раз обнуляем глобалку и запускаем "хулиганы зрения лишают!"

function timer_trans()
timer_transparent = timer_transparent + 1
if timer_transparent >= 50 then
timer_transparent = 0
transparent_gg()
end
end

------------------------------------------------------------------------------

Далее открываем файл \scripts\_g.script и внем прописываем свою глобалку:

dev_debug = false
sim_debug = false
mus_vol = 0
amb_vol = 0
timer_transparent = 0 --вот она, родная!

-------------------------------------------------------------------------------

Ну и последний штрих: подключить моторчик, чтобы пятидесятки считались, и "хулиганы

зрения лишают!" запускалась один раз на 50 апдейтов биндера.

Открываем \scripts\bind_stalker.script
ищем функцию апдейта function actor_binder:update(delta)
и так скромненько пристраиваем ей в хвостик свой доморощенный таймер

pda.fill_sleep_zones()
trans_outfit.timer_trans() -- функция из другого файла вызывается с префиксом имяфайла.

-- загрузка мода(постоянное обновление)

if mod_update() then
sgm_loader.sigerous_mod_main()
end
end

-----------------------------------------------

Всё в игре находим/обдираем/покупаем костюм новичка и пробуем инвизибл вар!