Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Undetected [Скрипт] Rainbow Six Siege — Universal No Recoil Lua для Logitech G Series

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
537
Реакции
14
Пока Ubisoft пытается в очередной раз «перебалансить» отдачу, старый добрый софт от Logitech продолжает стабильно работать. Если у тебя грызун G-серии, то этот Lua-скрипт — мастхэв для комфортного гейминга без лишнего потения над паттернами зажима.

Это не инжект, в память игры мы не лезем, работаем чисто на уровне софта мыши. Риск детекта минимален, но голову включать всё равно стоит — за мануалбан никто не впряжется.

Подготовка:
  1. Нужна любая мышь Logitech G-серии с поддержкой встроенной памяти или LUA.
  2. Ставим официальный Logitech G HUB.
  3. В G HUB выбираем профиль -> Управление профилями -> Иконка Scripting -> Создать новый скрипт.
  4. Вставляем код из спойлера ниже и жмем Ctrl + S.
  5. Ставим профиль как перманентный (Persistent), чтобы настройки не слетали при альт-табе.

Для идеальной работы скрипта выставляйте следующие параметры:

Windows:
Скорость указателя: 6/11 (дефолт)
Повышенная точность: Выкл (обязательно)

G HUB:
DPI: 800

In-game Settings:
Разрешение: 1920x1080
Соотношение сторон: 4:3
FOV: 89
Чувствительность: Horizontal — 5, Vertical — 5
ADS Sensitivity: 1x — 42, 2.5x — 57, 3.5x — 65, 5.0x — 75, 12.0x — 60

Управление и фичи:
  1. Разверните консоль в редакторе скриптов до упора вверх, чтобы видеть текущий статус пресета.
  2. Смена оперативника: Ctrl + MMB (средняя кнопка мыши).
  3. Переключение между атакой и защитой: Scroll Lock.
  4. Активация компенсации: Зажатие ПКМ + ЛКМ (стрельба в прицеле).

Основной скрипт (Core Logic):
Код:
Expand Collapse Copy
attackers = {
"Ace","Amaru","Ash","Blackbeard","Brava","Buck","Capitao","Deimos",
"Dokkaebi","Finka","Flores","Fuze","Glaz","Gridlock","Grim","Hibana",
"Iana","IQ","Jackal","Kali","Lion","Maverick","Nokk","Nomad","Osa",
"Rauora","Ram","Sens","Sledge","Solid Snake","Striker","Thatcher","Thermite","Twitch","Ying",
"Zero","Zofia"
}
defenders = {
"Alibi","Aruni","Azami","Bandit","Castle","Caveira","Clash","Denari",
"Doc","Echo","Ela","Fenrir","Frost","Goyo","Jager","Kaid","Kapkan",
"Lesion","Maestro","Melusi","Mira","Mozzie","Mute","Oryx","Pulse",
"Rook","Sentry","Skopos","Solis","Smoke","Tachanka","Thorn","Thunderbird",
"Tubarao","Valkyrie","Vigil","Wamai","Warden"
}
 
attacker_index = 1 -- Ace
defender_index = 1 -- Alibi
 
recoil = {}
 
recoil["Ace"] = {0, 46, 80, -1, 38, 600, -1, 40, 520, -1, 44, 900}
recoil["Alibi"] = {0, 32, 60, 1, 22, 600, 2, 25, 200, 2, 25, 300, 2, 25, 680}
recoil["Aruni"] = {-1, 23, 50}
recoil["Amaru"] = {0, 36, 150, -1, 32, 400, -1, 35, 700, -1, 35, 300, -1, 36, 150, -2, 37, 400, -2, 37, 550, -2, 37, 300, -1, 40, 250, -1, 41, 250}
recoil["Ash"] = {-1, 45, 50, -1, 43, 600, -1, 46, 1100}
recoil["Azami"] = {-1, 37, 60}
recoil["Bandit"] = {0, 18, 70, 0, 17, 800, 0, 19, 300, 0, 20, 500, -2, 19, 300}
recoil["Blackbeard"] = {0, 20, 150, 2, 15, 250, 3, 16, 650, 1, 17, 900}
recoil["Brava"] = {0, 28, 150, -1, 26, 400, 0, 29, 1000, -1, 32, 900, 0, 36, 300}
recoil["Buck"] = {0, 41, 150, 0, 30, 650, 0, 33, 650, -2, 36, 400, -1, 37, 300}
recoil["Capitao"] = {0, 28, 150, -1, 26, 400, 0, 29, 1000, -1, 32, 900, 0, 36, 300}
recoil["Castle"] = {0, 21, 30, 0, 10, 250, 0, 11, 700, -1, 11, 900, 0, 11, 700}
recoil["Caveira"] = {0, 10, 1000, -1, 9, 900, 0, 10, 600, 0, 9, 400, -1, 11, 400}
recoil["Clash"] = {0, 16, 1000, 0, 13, 400}
recoil["Deimos"] = {0, 43, 70, -1, 21, 1200, -1, 24, 700, -1, 25, 1000, -1, 27, 750}
recoil["Denari"] = {0, 36, 60, 2, 20, 400, 2, 29, 400, 3, 30, 500, 2, 31, 500, 2, 30, 300}
recoil["Doc"] = {0, 24, 30, 0, 16, 600, 0, 18, 300, 1, 19, 500, 0, 19, 1600}
recoil["Dokkaebi"] = {-1, 23, 50}
recoil["Echo"] = {0, 26, 30, -1, 16, 600, 0, 18, 300, -1, 19, 1250}
recoil["Ela"] = {0, 36, 60, 2, 20, 400, 2, 29, 400, 3, 30, 500, 2, 31, 500, 2, 30, 300}
recoil["Fenrir"] = {0, 18, 70, 0, 17, 800, 0, 19, 300, 0, 20, 500, -2, 19, 300}
recoil["Finka"] = {0, 48, 50, -1, 39, 400, -1, 42, 500, 0, 43, 500, -1, 44, 500, 0, 46, 500}
recoil["Flores"] = {0, 38, 80, -1, 26, 350, 0, 28, 300, -1, 30, 200, -1, 32, 1000}
recoil["Frost"] = {0, 18, 30, 0, 11, 600, 0, 11, 1100, 1, 11, 500, 0, 12, 1300}
recoil["Fuze"] = {0, 46, 80, -1, 38, 600, -1, 40, 520, -1, 44, 900}
recoil["Glaz"] = {0, 34, 60, 0, 28, 500, -1, 27, 800}
recoil["Goyo"] = {0, 27, 60, 1, 25, 250, 1, 25, 300, 1, 28, 600}
recoil["Gridlock"] = {0, 42, 50, -1, 31, 400, -1, 33, 500, -1, 36, 500, 0, 37, 500, 0, 38, 300}
recoil["Grim"] = {0, 37, 110, 0, 27, 500, -1, 29, 500, -1, 31, 850, 0, 32, 600}
recoil["Hibana"] = {0, 42, 40, -1, 35, 600, -1, 36, 300, -2, 37, 500}
recoil["Iana"] = {0, 45, 60, -1, 28, 700, -1, 29, 400, -1, 32, 500}
recoil["IQ"] = {0, 37, 110, 0, 27, 500, -1, 29, 500, -1, 31, 850, 0, 32, 600}
recoil["Jager"] = {0, 25, 60, -1, 21, 300, -1, 22, 1000, 0, 22, 600}
recoil["Jackal"] = {0, 44, 70, 0, 41, 500, -1, 42, 600, -1, 46, 500, -1, 48, 500}
recoil["Kaid"] = {0, 23, 60, 1, 15, 300, 1, 16, 800, 0, 17, 700, 0, 18, 700}
recoil["Kali"] = {0, 16, 1000, 0, 13, 400}
recoil["Kapkan"] = {0, 30, 10, 0, 19, 650, -1, 20, 800, 0, 21, 400, -1, 22, 500}
recoil["Lesion"] = {0, 22, 50, 0, 21, 500, -1, 22, 300, 0, 23, 300, -1, 24, 100, 1, 23, 800}
recoil["Lion"] = {0, 43, 60, 0, 24, 300, 0, 28, 1700, 0, 33, 2150}
recoil["Maestro"] = {0, 32, 20, 0, 17, 500, 0, 20, 500, 0, 21, 500, -1, 21, 600, 0, 21, 600, 0, 23, 2500}
recoil["Maverick"] = {0, 52, 50, -1, 34, 500, -1, 35, 500, -1, 38, 500, -1, 40, 700}
recoil["Melusi"] = {0, 24, 40, 0, 18, 600, -1, 20, 900, -1, 21, 700}
recoil["Mira"] = {0, 27, 60, 1, 25, 250, 1, 25, 300, 1, 28, 600}
recoil["Mozzie"] = {0, 26, 50, 0, 15, 300, -1, 16, 300, 0, 18, 400, 0, 18, 400, 0, 18, 400}
recoil["Mute"] = {0, 39, 60, 0, 32, 650}
recoil["Nokk"] = {0, 22, 40, 1, 16, 200, 0, 17, 800, 1, 19, 1200}
recoil["Nomad"] = {0, 45, 60, -1, 28, 700, -1, 29, 400, -1, 32, 500}
recoil["Oryx"] = {0, 22, 50, 0, 21, 500, -1, 22, 300, 0, 23, 300, -1, 24, 100, 1, 23, 800}
recoil["Osa"] = {0, 28, 80, 2, 24, 600, 2, 25, 300, 3, 26, 1600}
recoil["Pulse"] = {0, 21, 30, 0, 10, 250, 0, 11, 700, -1, 11, 900, 0, 11, 700}
recoil["Rauora"] = {0, 25, 50, -1, 22, 1500, -1, 28, 800, -1, 27, 2300, -1, 29, 4600}
recoil["Ram"] = {-1, 45, 50, -1, 43, 600, -1, 46, 1100}
recoil["Rook"] = {0, 24, 30, 0, 16, 600, 0, 18, 300, 1, 19, 500, 0, 19, 1600}
recoil["Sens"] = {1, 48, 40, 0, 30, 400, 0, 31, 1600, -1, 33, 300, -1, 33, 800, -1, 33, 800}
recoil["Sentry"] = {0, 26, 50, 0, 15, 300, -1, 16, 300, 0, 18, 400, 0, 18, 400, 0, 18, 400}
recoil["Skopos"] = {0, 18, 50, 0, 16, 500, -1, 16, 500, 0, 16, 500, -1, 17, 700}
recoil["Sledge"] = {0, 38, 60, 1, 24, 450, 2, 26, 300, 2, 27, 1500, 2, 29, 300}
recoil["Smoke"] = {0, 39, 60, 0, 32, 650}
recoil["Solid Snake"] = {0, 55, 80, -1, 52, 600, 0, 53, 200, -1, 54, 650}
recoil["Solis"] = {0, 39, 60, 0, 32, 650}
recoil["Striker"] = {0, 52, 50, -1, 34, 500, -1, 35, 500, -1, 38, 500, -1, 40, 700}
recoil["Tachanka"] = {0, 14, 50, 1, 8, 2900, 2, 8, 4600}
recoil["Thatcher"] = {0, 38, 60, 1, 24, 450, 2, 26, 300, 2, 27, 1500, 2, 29, 300}
recoil["Thermite"] = {0, 28, 80, 2, 24, 600, 2, 25, 300, 3, 26, 1600}
recoil["Thorn"] = {0, 23, 50, 0, 18, 500, 1, 19, 500, 1, 21, 500, 0, 21, 300}
recoil["Thunderbird"] = {0, 25, 30, -1, 22, 250, 0, 22, 250, -1, 23, 500, 0, 24, 500, -1, 24, 500, 0, 25, 400}
recoil["Tubarao"] = {0, 25, 60}
recoil["Twitch"] = {0, 55, 80, -1, 52, 600, 0, 53, 200, -1, 54, 650}
recoil["Valkyrie"] = {0, 24, 20, 0, 17, 500, 0, 18, 500, 0, 18, 500, -1, 19, 500}
recoil["Vigil"] = {0, 22, 30, 0, 19, 300, -1, 20, 500, -1, 21, 1700}
recoil["Wamai"] = {0, 23, 40, 0, 18, 500, 1, 19, 500, 1, 20, 500, 0, 19, 500, 0, 22, 400}
recoil["Warden"] = {0, 24, 20, 0, 17, 500, 0, 18, 500, 0, 18, 500, -1, 19, 500}
recoil["Ying"] = {0, 38, 60, -1, 29, 300, -1, 30, 450, 0, 32, 1800, 2, 36, 4700}
recoil["Zero"] = {0, 51, 40, -1, 40, 200, -1, 42, 700, -1, 45, 350, 0, 47, 500}
recoil["Zofia"] = {0, 56, 50, 1, 36, 600, 1, 37, 500, -1, 40, 600, 0, 42, 600}
 
weaponInfo = {}
 
weaponInfo["Ace"] = "AK-12 (2.5x, compensator, angled grip)"
weaponInfo["Alibi"] = "Mx4 Storm (x1, compensator, angled grip)"
weaponInfo["Aruni"] = "Mk 14 EBR (2.5x, muzzle brake, angled grip)"
weaponInfo["Amaru"] = "G8A1 (2.5x, compensator, angled grip)"
weaponInfo["Ash"] = "R4-C (2.5x, compensator, angled grip)"
weaponInfo["Azami"] = "ACS12 (2.5x, angled grip)"
weaponInfo["Bandit"] = "MP7 (x1, compensator)"
weaponInfo["Blackbeard"] = "MK17 CQB (2.5x, compensator, angled grip)"
weaponInfo["Brava"] = "PARA-308 (2.5x, compensator, angled grip)"
weaponInfo["Buck"] = "C8SFW (2.5x, compensator)"
weaponInfo["Capitao"] = "PARA-308 (2.5x, compensator, angled grip)"
weaponInfo["Castle"] = "UMP45 (x1, compensator, angled grip)"
weaponInfo["Caveira"] = "M12 (x1, compensator)"
weaponInfo["Clash"] = "SPSMG9 (x1, compensator)"
weaponInfo["Deimos"] = "AK-74M (2.5x, compensator, angled grip)"
weaponInfo["Denari"] = "SCORPION EVO 3 A1 (x1, compensator, angled grip)"
weaponInfo["Doc"] = "P90 (x1, compensator)"
weaponInfo["Dokkaebi"] = "Mk 14 EBR (2.5x, muzzle brake, angled grip)"
weaponInfo["Echo"] = "MP5SD (x1, angled grip)"
weaponInfo["Ela"] = "SCORPION EVO 3 A1 (x1, compensator, angled grip)"
weaponInfo["Fenrir"] = "MP7 (x1, compensator)"
weaponInfo["Finka"] = "SPEAR .308 (2.5x, compensator, angled grip)"
weaponInfo["Flores"] = "AR33 (2.5x, compensator, angled grip)"
weaponInfo["Frost"] = "9mm C1 (x1, compensator, angled grip)"
weaponInfo["Fuze"] = "AK-12 (2.5x, compensator, angled grip)"
weaponInfo["Glaz"] = "BEARING 9 (x1, compensator)"
weaponInfo["Goyo"] = "VECTOR .45 ACP (x1, compensator, angled grip)"
weaponInfo["Gridlock"] = "F90 (2.5x, compensator, angled grip)"
weaponInfo["Grim"] = "552 COMMANDO (2.5x, compensator, angled grip)"
weaponInfo["Hibana"] = "TYPE-89 (2.5x, compensator, angled grip)"
weaponInfo["Iana"] = "ARX200 (2.5x, compensator, angled grip)"
weaponInfo["IQ"] = "552 COMMANDO (2.5x, compensator, angled grip)"
weaponInfo["Jager"] = "416-C CARBINE (x1, compensator, angled grip)"
weaponInfo["Jackal"] = "C7E (2.5x, compensator, angled grip)"
weaponInfo["Kaid"] = "AUG A3 (x1, compensator, angled grip)"
weaponInfo["Kali"] = "SPSMG9 (x1, compensator)"
weaponInfo["Kapkan"] = "9x19VSN (x1, compensator, angled grip)"
weaponInfo["Lesion"] = "T-5 SMG (x1, compensator, angled grip)"
weaponInfo["Lion"] = "V308 (2.5x, compensator, angled grip)"
weaponInfo["Maestro"] = "ALDA 5.56 (x1, compensator, vertical grip)"
weaponInfo["Maverick"] = "M4 (2.5x, compensator, angled grip)"
weaponInfo["Melusi"] = "MP5 (x1, compensator, angled grip)"
weaponInfo["Mira"] = "VECTOR .45 ACP (x1, compensator, angled grip)"
weaponInfo["Mozzie"] = "COMMANDO 9 (x1, compensator, angled grip)"
weaponInfo["Mute"] = "SMG-11 (x1, compensator, angled grip)"
weaponInfo["Nokk"] = "FMG-9 (x1, compensator)"
weaponInfo["Nomad"] = "ARX200 (2.5x, compensator, angled grip)"
weaponInfo["Oryx"] = "T-5 SMG (x1, compensator, angled grip)"
weaponInfo["Osa"] = "556Xl (2.5x, compensator, angled grip)"
weaponInfo["Pulse"] = "UMP45 (x1, compensator, angled grip)"
weaponInfo["Rauora"] = "M249 (2.5x, compensator, angled grip)"
weaponInfo["Ram"] = "R4-C (2.5x, compensator, angled grip)"
weaponInfo["Rook"] = "P90 (x1, compensator)"
weaponInfo["Sens"] = "POF-9 (2.5x, compensator, angled grip)"
weaponInfo["Sentry"] = "COMMANDO 9 (x1, compensator, angled grip)"
weaponInfo["Skopos"] = "PCX-33 (x1, compensator, angled grip)"
weaponInfo["Sledge"] = "L85A2 (2.5x, compensator, angled grip)"
weaponInfo["Smoke"] = "SMG-11 (x1, compensator, angled grip)"
weaponInfo["Solid Snake"] = "F2 (2.5x, compensator, angled grip)"
weaponInfo["Solis"] = "SMG-11 (x1, compensator, angled grip)"
weaponInfo["Striker"] = "M4 (2.5x, compensator, angled grip)"
weaponInfo["Tachanka"] = "DP27 (1x)"
weaponInfo["Thatcher"] = "L85A2 (2.5x, compensator, angled grip)"
weaponInfo["Thermite"] = "556Xl (2.5x, compensator, angled grip)"
weaponInfo["Thorn"] = "UZK50Gl (x1, compensator, angled grip)"
weaponInfo["Thunderbird"] = "SPEAR .308 (1x, compensator, angled grip)"
weaponInfo["Tubarao"] = "AR-15.50 (2.5x, muzzle brake, angled grip)"
weaponInfo["Twitch"] = "F2 (2.5x, compensator, angled grip)"
weaponInfo["Valkyrie"] = "MPX (1x, compensator, angled grip)"
weaponInfo["Vigil"] = "K1A (1x, compensator, angled grip)"
weaponInfo["Wamai"] = "AUG A2 (1x, compensator)"
weaponInfo["Warden"] = "MPX (1x, compensator, angled grip)"
weaponInfo["Ying"] = "T-95 LSW (2.5x, compensator, angled grip)"
weaponInfo["Zero"] = "SC3000K (2.5x, compensator, angled grip)"
weaponInfo["Zofia"] = "M762 (2.5x, compensator, angled grip)"
 
function getCurrentOperator()
    if IsKeyLockOn("scrolllock") then
        return defenders[defender_index]
    else
        return attackers[attacker_index]
    end
end
 
function nextOperator()
    if IsKeyLockOn("scrolllock") then
        defender_index = defender_index + 1
        if defender_index > #defenders then
            defender_index = 1
        end
    else
        attacker_index = attacker_index + 1
        if attacker_index > #attackers then
            attacker_index = 1
        end
    end
end
 
function drawGrid(list, selected, columns)
    local PADDING = 2
    local maxLen = 0
    for i = 1, #list do
        local len = string.len(list[i])
        if len > maxLen then
            maxLen = len
        end
    end
 
    local CELL_WIDTH = maxLen + PADDING * 2
    local function centerText(text, width)
        local len = string.len(text)
        if len >= width then
            return text
        end
 
        local left = math.floor((width - len) / 2)
        local right = width - len - left
        return string.rep(" ", left)
            .. text
            .. string.rep(" ", right)
    end
 
    local result = ""
    local rows = math.ceil(#list / columns)
    result = result ..
        "+" ..
        string.rep("-", CELL_WIDTH * columns + columns - 1) ..
        "+\n"
    for r = 1, rows do
        result = result .. "|"
        for c = 1, columns do
            local i = r + (c-1)*rows
            local name = list[i]
            if name then
                if name == selected then
                    local label =
                        "> "
                        .. string.upper(name)
                        .. " <"
                    result =
                        result
                        .. centerText(label, CELL_WIDTH)
                else
                    result =
                        result
                        .. centerText(name, CELL_WIDTH)
                end
            else
                result =
                    result
                    .. string.rep(" ", CELL_WIDTH)
            end
            if c < columns then
                result = result .. "|"
            end
        end
        result = result .. "|\n"
    end
    result = result ..
        "+" ..
        string.rep("-", CELL_WIDTH * columns + columns - 1) ..
        "+\n"
    return result
end
 
function Log()
    ClearLog()
 
    local op = getCurrentOperator()
    local gun = weaponInfo[op] or "unknown"
 
    if IsKeyLockOn("scrolllock") then
        OutputLogMessage("                    MODE: > > > DEFENDERS < < <\n\n")
    else
        OutputLogMessage("                    MODE: > > > ATTACKERS < < <\n\n")
    end
 
    OutputLogMessage(
        "SELECTED OPERATOR:  ► ► ►   %s\nSELECTED WEAPON:    ► ► ►   %s\n\n",
        op,
        gun
    )
    if IsKeyLockOn("scrolllock") then
        OutputLogMessage(drawGrid(defenders, op, 4))
    else
        OutputLogMessage(drawGrid(attackers, op, 4))
    end
end
 
function applyRecoil(pattern)
    for i=3,#pattern,3 do
        local start = GetRunningTime()
        local x = pattern[i-2]
        local y = pattern[i-1]
        local duration = pattern[i]
        repeat
            MoveMouseRelative(x,y)
            Sleep(10)
        until GetRunningTime() - start >= duration
            or not IsMouseButtonPressed(1)
            or not IsMouseButtonPressed(3)
    end
end
 
function OnEvent(event,arg)
    EnablePrimaryMouseButtonEvents(true)
    if event == "PROFILE_ACTIVATED" then
        Log()
    end
 
    if event == "MOUSE_BUTTON_PRESSED"
    and arg == 3
    and IsModifierPressed("lctrl") then
        nextOperator()
        Log()
    end
 
    if event == "MOUSE_BUTTON_PRESSED"
    and arg == 1
    and IsMouseButtonPressed(3) then
        local op = getCurrentOperator()
        local pattern = recoil[op]
        if pattern then
            applyRecoil(pattern)
        end
    end
end

Полный список оффсетов для всех оперов уже забит внутри таблиц. Если чувствуете, что тянет не туда — просто поправьте значения под свой стиль. Скрипт подхватывает изменения на лету после сохранения.

Тестируйте на полигоне перед тем, как идти в ранкед, и делитесь своими значениями оффсетов под кастомный DPI.
 
Назад
Сверху Снизу