one touch or full roblox
Key Required

one touch or full roblox

[Update] OneShotincatoincato 2.2K views 2.2K executesUpdated Feb 14, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•634 lines (24443 chars)
--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]

local teamCheck = false
local fov = 500
local smoothing = 1

-- Переменные для обучения
local totalShots = 0
local totalHits = 0
local accuracy = 0.0

-- Переменная для Триггер-бота
local TriggerBotEnabled = false

local RunService       = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Players          = game:GetService("Players")
local LocalPlayer      = Players.LocalPlayer
local Camera           = workspace.CurrentCamera

-- =============================================================================
-- FOV КРУГ
-- =============================================================================
local FOVring = Drawing.new("Circle")
FOVring.Visible       = true
FOVring.Thickness     = 1.5
FOVring.Radius        = fov
FOVring.Transparency  = 1
FOVring.Color         = Color3.fromRGB(255, 128, 128)
FOVring.Position      = Camera.ViewportSize / 2
FOVring.Filled        = false

-- =============================================================================
-- ESP НАСТРОЙКИ + радуга
-- =============================================================================
local ESPSettings = {
    Enabled       = true,
    ShowBox       = true,
    ShowName      = true,
    ShowHP        = true,
    ShowFOVCircle = true,
    RainbowESP    = false,
}

-- Тема меню
local CurrentTheme = "Dark"

local Theme = {
    Dark = {
        Background     = Color3.fromRGB(20,  20,  26),
        Accent         = Color3.fromRGB(0,   170, 100),
        Text           = Color3.fromRGB(220, 220, 235),
        SecondaryText  = Color3.fromRGB(200, 200, 220),
        Divider        = Color3.fromRGB(55,  55,  70),
        ToggleOff      = Color3.fromRGB(70,  70,  85),
    },
    Light = {
        Background     = Color3.fromRGB(245, 245, 250),
        Accent         = Color3.fromRGB(0,   140, 220),
        Text           = Color3.fromRGB(30,  30,  40),
        SecondaryText  = Color3.fromRGB(70,  70,  90),
        Divider        = Color3.fromRGB(210, 210, 220),
        ToggleOff      = Color3.fromRGB(180, 180, 190),
    }
}

-- =============================================================================
-- Водяной знак "lin4ik"
-- =============================================================================
local watermarkBg = Drawing.new("Square")
watermarkBg.Visible       = true
watermarkBg.Position      = Vector2.new(Camera.ViewportSize.X - 170, 5)
watermarkBg.Size          = Vector2.new(120, 35)
watermarkBg.Thickness     = 1
watermarkBg.Filled        = true
watermarkBg.Color         = Color3.fromRGB(0, 0, 0)
watermarkBg.Transparency  = 0.70
watermarkBg.Radius        = 8

local watermark = Drawing.new("Text")
watermark.Visible       = true
watermark.Position      = Vector2.new(Camera.ViewportSize.X - 140, 12)
watermark.Size          = 22
watermark.Center        = false
watermark.Outline       = true
watermark.OutlineColor  = Color3.fromRGB(0,0,0)
watermark.Color         = Color3.fromRGB(180, 180, 180)
watermark.Text          = "lin4ik"
watermark.Font          = Drawing.Fonts.Monospace

-- Анимация радуги
local rainbowTime = 0
RunService.RenderStepped:Connect(function(delta)
    rainbowTime = rainbowTime + delta * 1.2
    local hue = rainbowTime % 1
    local color = Color3.fromHSV(hue, 1, 1)

    if ESPSettings.RainbowESP then
        watermark.Color = color
        for _, data in pairs(espElements) do
            data.nameTag.Color = color
            data.healthText.Color = color
            for _, line in ipairs(data.lines) do
                line.Color = color
            end
        end
    end
end)

-- =============================================================================
-- Текст вверху экрана
-- =============================================================================
local hintText = Drawing.new("Text")
hintText.Visible       = true
hintText.Position      = Vector2.new(Camera.ViewportSize.X / 2, 60)
hintText.Size          = 40
hintText.Center        = true
hintText.Outline       = true
hintText.OutlineColor  = Color3.fromRGB(0,0,0)
hintText.Color         = Color3.fromRGB(40, 40, 40)
hintText.Text          = "ОТКРЫТЬ МЕНЮ НА M\nАИМБОТ НА E"
hintText.Font          = Drawing.Fonts.Monospace

task.delay(10, function()
    hintText.Visible = false
end)

-- =============================================================================
-- Свой HP % над головой
-- =============================================================================
local selfHPText = Drawing.new("Text")
selfHPText.Visible       = true
selfHPText.Center        = true
selfHPText.Outline       = true
selfHPText.OutlineColor  = Color3.fromRGB(0,0,0)
selfHPText.Color         = Color3.fromRGB(220, 220, 220)
selfHPText.Size          = 26
selfHPText.Font          = Drawing.Fonts.Monospace

RunService.RenderStepped:Connect(function()
    if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") and LocalPlayer.Character:FindFirstChild("Head") then
        local humanoid = LocalPlayer.Character.Humanoid
        local headPos = LocalPlayer.Character.Head.Position + Vector3.new(0, 2.8, 0)
        local screenPos, onScreen = Camera:WorldToViewportPoint(headPos)
        
        if onScreen then
            local hpPerc = math.clamp(math.floor(humanoid.Health / humanoid.MaxHealth * 100 + 0.5), 0, 100)
            selfHPText.Text = tostring(hpPerc) .. "%"
            selfHPText.Position = Vector2.new(screenPos.X, screenPos.Y - 30)
            selfHPText.Visible = true
            
            if hpPerc > 70 then
                selfHPText.Color = Color3.fromRGB(100, 220, 140)
            elseif hpPerc > 30 then
                selfHPText.Color = Color3.fromRGB(220, 180, 60)
            else
                selfHPText.Color = Color3.fromRGB(220, 60, 60)
            end
        else
            selfHPText.Visible = false
        end
    else
        selfHPText.Visible = false
    end
end)

-- =============================================================================
-- TRIGGER BOT LOGIC (Новая функция)
-- =============================================================================
task.spawn(function()
    while true do
        task.wait(0.01) -- Быстрая проверка
        if TriggerBotEnabled then
            -- Параметры луча: игнорируем себя и камеру
            local rayParams = RaycastParams.new()
            rayParams.FilterDescendantsInstances = {LocalPlayer.Character, Camera}
            rayParams.FilterType = Enum.RaycastFilterType.Exclude

            -- Пускаем луч из центра камеры
            local rayOrigin = Camera.CFrame.Position
            local rayDirection = Camera.CFrame.LookVector * 1000

            local rayResult = workspace:Raycast(rayOrigin, rayDirection, rayParams)

            if rayResult and rayResult.Instance then
                local hitPart = rayResult.Instance
                
                -- Пытаемся найти модель игрока, в которого попали
                local model = hitPart:FindFirstAncestorOfClass("Model")
                if model then
                    local player = Players:GetPlayerFromCharacter(model)
                    
                    -- Проверяем, что это игрок, не мы, и он жив
                    if player and player ~= LocalPlayer then
                        local hum = model:FindFirstChild("Humanoid")
                        if hum and hum.Health > 0 then
                            -- Проверка команды (используем ту же переменную teamCheck, что и для аима)
                            if (not teamCheck) or (player.Team ~= LocalPlayer.Team) then
                                -- ВЫСТРЕЛ
                                mouse1press()
                                task.wait(0.05) -- Удерживаем кнопку
                                mouse1release()
                                task.wait(0.1)  -- Небольшая задержка перед следующим выстрелом
                            end
                        end
                    end
                end
            end
        end
    end
end)

-- =============================================================================
-- getClosest
-- =============================================================================
local function getClosest(cframe)
    local ray = Ray.new(cframe.Position, cframe.LookVector).Unit
    local target = nil
    local mag = math.huge
    
    for _, v in pairs(Players:GetPlayers()) do
        if v.Character and v.Character:FindFirstChild("Head") 
           and v.Character:FindFirstChild("Humanoid") 
           and v.Character:FindFirstChild("HumanoidRootPart") 
           and v ~= LocalPlayer 
           and (v.Team ~= LocalPlayer.Team or not teamCheck) then
            
            local headPos = v.Character.Head.Position
            local closestPoint = ray:ClosestPoint(headPos)
            local magBuf = (headPos - closestPoint).Magnitude
            
            if magBuf < mag then
                mag = magBuf
                target = v
            end
        end
    end
    return target
end

-- =============================================================================
-- updateLearning
-- =============================================================================
local function updateLearning(success)
    totalShots = totalShots + 1
    if success then totalHits = totalHits + 1 end
    accuracy = totalShots > 0 and (totalHits / totalShots) or 0
    
    if accuracy < 0.3 then
        fov = fov + 10
        smoothing = math.max(0.05, smoothing - 0.01)
    elseif accuracy > 0.7 then
        smoothing = math.min(1, smoothing + 0.01)
    end
    FOVring.Radius = fov
end

-- =============================================================================
-- Аимбот
-- =============================================================================
RunService.RenderStepped:Connect(function()
    if not (UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton3) or
            UserInputService:IsKeyDown(Enum.KeyCode.E)) then return end
    
    local cam = Camera
    local screenCenter = cam.ViewportSize / 2
    
    local closestTarget = getClosest(cam.CFrame)
    if closestTarget and closestTarget.Character and closestTarget.Character:FindFirstChild("Head") then
        local headPos = closestTarget.Character.Head.Position
        local ssHeadPoint, onScreen = cam:WorldToScreenPoint(headPos)
        local screenHead = Vector2.new(ssHeadPoint.X, ssHeadPoint.Y)
        
        if onScreen and (screenHead - screenCenter).Magnitude < fov then
            local targetCFrame = CFrame.new(cam.CFrame.Position, headPos)
            cam.CFrame = cam.CFrame:Lerp(targetCFrame, smoothing)
            
            local hitChance = math.random() < 0.9
            updateLearning(hitChance)
        end
    end
end)

-- =============================================================================
-- ESP
-- =============================================================================
local espElements = {}

local function createESP(player)
    if player == LocalPlayer then return end
    
    local esp = {}
    
    esp.nameTag = Drawing.new("Text")
    esp.nameTag.Visible    = false
    esp.nameTag.Center     = true
    esp.nameTag.Outline    = true
    esp.nameTag.Size       = 16
    esp.nameTag.Color      = Color3.fromRGB(200, 200, 200)
    esp.nameTag.Text       = player.Name
    
    esp.healthText = Drawing.new("Text")
    esp.healthText.Visible    = false
    esp.healthText.Outline    = true
    esp.healthText.Size       = 15
    esp.healthText.Color      = Color3.fromRGB(180, 180, 180)
    
    esp.lines = {}
    for i = 1, 4 do
        local line = Drawing.new("Line")
        line.Visible      = false
        line.Thickness    = 2
        line.Transparency = 1
        line.Color        = Color3.fromRGB(200, 200, 200)
        table.insert(esp.lines, line)
    end
    
    espElements[player] = esp
end

local function updateESP()
    if not ESPSettings.Enabled then
        for _, data in pairs(espElements) do
            data.nameTag.Visible = false
            data.healthText.Visible = false
            for _, ln in ipairs(data.lines) do ln.Visible = false end
        end
        return
    end
    
    for _, player in pairs(Players:GetPlayers()) do
        local data = espElements[player]
        if not data then continue end
        
        if player.Character then
            local hrp  = player.Character:FindFirstChild("HumanoidRootPart")
            local head = player.Character:FindFirstChild("Head")
            local hum  = player.Character:FindFirstChild("Humanoid")
            
            if hrp and head and hum then
                local rootPos, onScreen = Camera:WorldToViewportPoint(hrp.Position)
                
                if onScreen then
                    local top    = Camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.6, 0))
                    local bottom = Camera:WorldToViewportPoint(hrp.Position - Vector3.new(0, 3.0, 0))
                    
                    local height = math.abs(top.Y - bottom.Y)
                    local width  = height * 0.55
                    
                    local left   = Vector2.new(rootPos.X - width/2, top.Y)
                    local right  = Vector2.new(rootPos.X + width/2, top.Y)
                    local bl     = Vector2.new(left.X, bottom.Y)
                    local br     = Vector2.new(right.X, bottom.Y)
                    
                    if ESPSettings.ShowBox then
                        local boxColor = ESPSettings.RainbowESP and Color3.fromHSV((tick() * 0.8) % 1, 1, 1) or Color3.fromRGB(200, 200, 200)
                        for _, ln in ipairs(data.lines) do
                            ln.Color = boxColor
                        end
                        data.lines[1].From = left;    data.lines[1].To = right;  data.lines[1].Visible = true
                        data.lines[2].From = right;   data.lines[2].To = br;      data.lines[2].Visible = true
                        data.lines[3].From = br;      data.lines[3].To = bl;      data.lines[3].Visible = true
                        data.lines[4].From = bl;      data.lines[4].To = left;    data.lines[4].Visible = true
                    else
                        for _, ln in ipairs(data.lines) do ln.Visible = false end
                    end
                    
                    data.nameTag.Visible = ESPSettings.ShowName
                    if ESPSettings.ShowName then
                        data.nameTag.Position = Vector2.new(rootPos.X, top.Y - 24)
                        if ESPSettings.RainbowESP then
                            data.nameTag.Color = Color3.fromHSV((tick() * 0.8 + 0.1) % 1, 1, 1)
                        end
                    end
                    
                    if ESPSettings.ShowHP then
                        local hpPerc = math.clamp(math.floor(hum.Health / hum.MaxHealth * 100), 0, 100)
                        data.healthText.Text = hpPerc .. "%"
                        
                        if ESPSettings.RainbowESP then
                            data.healthText.Color = Color3.fromHSV((tick() * 0.8 + 0.2) % 1, 1, 1)
                        else
                            data.healthText.Color = hpPerc > 70 and Color3.fromRGB(100,220,140)
                                or hpPerc > 30 and Color3.fromRGB(220,180,60)
                                or Color3.fromRGB(220,60,60)
                        end
                        
                        data.healthText.Position = Vector2.new(right.X + 6, rootPos.Y - 10)
                        data.healthText.Visible = true
                    else
                        data.healthText.Visible = false
                    end
                else
                    data.nameTag.Visible = false
                    data.healthText.Visible = false
                    for _, ln in ipairs(data.lines) do ln.Visible = false end
                end
            else
                data.nameTag.Visible = false
                data.healthText.Visible = false
                for _, ln in ipairs(data.lines) do ln.Visible = false end
            end
        else
            data.nameTag.Visible = false
            data.healthText.Visible = false
            for _, ln in ipairs(data.lines) do ln.Visible = false end
        end
    end
    
    -- Управление видимостью FOV круга через меню
    FOVring.Visible = ESPSettings.ShowFOVCircle
end

for _, plr in pairs(Players:GetPlayers()) do createESP(plr) end
Players.PlayerAdded:Connect(createESP)
Players.PlayerRemoving:Connect(function(plr)
    local d = espElements[plr]
    if d then
        d.nameTag:Remove()
        d.healthText:Remove()
        for _, ln in ipairs(d.lines) do ln:Remove() end
        espElements[plr] = nil
    end
end)

RunService.RenderStepped:Connect(updateESP)

-- =============================================================================
-- МЕНЮ
-- =============================================================================
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "CustomESPMenu"
screenGui.ResetOnSpawn = false
screenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
screenGui.Enabled = false

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 300, 0, 600) -- Увеличил высоту, чтобы влезла новая кнопка
mainFrame.Position = UDim2.new(0.5, -150, 0.5, -250)
mainFrame.BackgroundColor3 = Theme[CurrentTheme].Background
mainFrame.BorderSizePixel = 0
mainFrame.Parent = screenGui

local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 18)
uiCorner.Parent = mainFrame

local titleBar = Instance.new("Frame")
titleBar.Size = UDim2.new(1, 0, 0, 54)
titleBar.BackgroundColor3 = Theme[CurrentTheme].Background
titleBar.BorderSizePixel = 0
titleBar.Parent = mainFrame

local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -80, 1, 0)
titleLabel.Position = UDim2.new(0, 20, 0, 0)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Settings" -- Поменял название, так как теперь тут не только ESP
titleLabel.TextColor3 = Theme[CurrentTheme].Text
titleLabel.TextSize = 22
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = titleBar

-- Перетаскивание
local dragging, dragInput, dragStart, startPos
titleBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = mainFrame.Position
        
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then
                dragging = false
            end
        end)
    end
end)

titleBar.InputChanged:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
        dragInput = input
    end
end)

RunService.RenderStepped:Connect(function()
    if dragging and dragInput then
        local delta = dragInput.Position - dragStart
        mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    end
end)

local divider = Instance.new("Frame")
divider.Size = UDim2.new(0.92, 0, 0, 1)
divider.Position = UDim2.new(0.04, 0, 0, 54)
divider.BackgroundColor3 = Theme[CurrentTheme].Divider
divider.BorderSizePixel = 0
divider.Parent = mainFrame

local function createToggle(name, initial, callback, yPos)
    local cont = Instance.new("Frame")
    cont.Size = UDim2.new(0.92, 0, 0, 50)
    cont.Position = UDim2.new(0.04, 0, 0, yPos)
    cont.BackgroundTransparency = 1
    cont.Parent = mainFrame
    
    local lbl = Instance.new("TextLabel")
    lbl.Size = UDim2.new(0.68, 0, 1, 0)
    lbl.BackgroundTransparency = 1
    lbl.Text = name
    lbl.TextColor3 = Theme[CurrentTheme].SecondaryText
    lbl.TextSize = 18
    lbl.Font = Enum.Font.GothamSemibold
    lbl.TextXAlignment = Enum.TextXAlignment.Left
    lbl.Parent = cont
    
    local bg = Instance.new("Frame")
    bg.Size = UDim2.new(0, 58, 0, 30)
    bg.Position = UDim2.new(1, -78, 0.5, -15)
    bg.BackgroundColor3 = initial and Theme[CurrentTheme].Accent or Theme[CurrentTheme].ToggleOff
    bg.BorderSizePixel = 0
    bg.Parent = cont
    
    Instance.new("UICorner", bg).CornerRadius = UDim.new(1)
    
    local knob = Instance.new("Frame")
    knob.Size = UDim2.new(0, 24, 0, 24)
    knob.Position = initial and UDim2.new(0, 30, 0.5, -12) or UDim2.new(0, 4, 0.5, -12)
    knob.BackgroundColor3 = Color3.fromRGB(255,255,255)
    knob.BorderSizePixel = 0
    knob.Parent = bg
    
    Instance.new("UICorner", knob).CornerRadius = UDim.new(1)
    
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(1,0,1,0)
    btn.BackgroundTransparency = 1
    btn.Text = ""
    btn.Parent = cont
    
    local state = initial
    
    btn.MouseButton1Click:Connect(function()
        state = not state
        bg.BackgroundColor3 = state and Theme[CurrentTheme].Accent or Theme[CurrentTheme].ToggleOff
        knob:TweenPosition(state and UDim2.new(0,30,0.5,-12) or UDim2.new(0,4,0.5,-12), "Out", "Quad", 0.18, true)
        callback(state)
    end)
end

local y = 80
createToggle("ESP Enabled",      ESPSettings.Enabled,       function(v) ESPSettings.Enabled = v       end, y) y += 58
createToggle("Show Box",         ESPSettings.ShowBox,       function(v) ESPSettings.ShowBox = v       end, y) y += 58
createToggle("Show Name",        ESPSettings.ShowName,      function(v) ESPSettings.ShowName = v      end, y) y += 58
createToggle("Show HP %",        ESPSettings.ShowHP,        function(v) ESPSettings.ShowHP = v        end, y) y += 58
createToggle("Show FOV Circle", ESPSettings.ShowFOVCircle,function(v) 
    ESPSettings.ShowFOVCircle = v
    FOVring.Visible = v
end, y) y += 58
createToggle("Rainbow ESP",      ESPSettings.RainbowESP,    function(v) ESPSettings.RainbowESP = v    end, y) y += 58
createToggle("Trigger Bot",      TriggerBotEnabled,         function(v) TriggerBotEnabled = v         end, y) y += 58 -- КНОПКА ДОБАВЛЕНА

-- Переключатель темы
local themeCont = Instance.new("Frame")
themeCont.Size = UDim2.new(0.92, 0, 0, 50)
themeCont.Position = UDim2.new(0.04, 0, 0, y)
themeCont.BackgroundTransparency = 1
themeCont.Parent = mainFrame

local themeLbl = Instance.new("TextLabel")
themeLbl.Size = UDim2.new(0.5, 0, 1, 0)
themeLbl.BackgroundTransparency = 1
themeLbl.Text = "Theme"
themeLbl.TextColor3 = Theme[CurrentTheme].SecondaryText
themeLbl.TextSize = 18
themeLbl.Font = Enum.Font.GothamSemibold
themeLbl.TextXAlignment = Enum.TextXAlignment.Left
themeLbl.Parent = themeCont

local themeBtn = Instance.new("TextButton")
themeBtn.Size = UDim2.new(0, 60, 0, 60)
themeBtn.Position = UDim2.new(1, -80, 0.5, -30)
themeBtn.BackgroundTransparency = 1
themeBtn.Text = ""
themeBtn.Parent = themeCont

local themeIcon = Instance.new("TextLabel")
themeIcon.Size = UDim2.new(1, 0, 1, 0)
themeIcon.BackgroundTransparency = 1
themeIcon.TextSize = 48
themeIcon.Font = Enum.Font.SourceSansBold
themeIcon.Parent = themeBtn

local function updateThemeIcon()
    if CurrentTheme == "Dark" then
        themeIcon.Text = "🌙"
        themeIcon.TextColor3 = Color3.fromRGB(200, 220, 255)
    else
        themeIcon.Text = "☀️"
        themeIcon.TextColor3 = Color3.fromRGB(255, 220, 80)
    end
end

updateThemeIcon()

themeBtn.MouseButton1Click:Connect(function()
    CurrentTheme = CurrentTheme == "Dark" and "Light" or "Dark"
    
    mainFrame.BackgroundColor3 = Theme[CurrentTheme].Background
    titleBar.BackgroundColor3 = Theme[CurrentTheme].Background
    titleLabel.TextColor3 = Theme[CurrentTheme].Text
    divider.BackgroundColor3 = Theme[CurrentTheme].Divider
    
    for _, child in ipairs(mainFrame:GetDescendants()) do
        if child:IsA("TextLabel") and child ~= titleLabel and child ~= themeIcon then
            child.TextColor3 = Theme[CurrentTheme].SecondaryText
        end
    end
    
    updateThemeIcon()
end)

-- Открытие меню
UserInputService.InputBegan:Connect(function(input, gp)
    if gp then return end
    if input.KeyCode == Enum.KeyCode.M then
        screenGui.Enabled = not screenGui.Enabled
    end
end)

print("Trigger Bot добавлен в меню. Нажми M, включи 'Trigger Bot' и наведи прицел на врага.")

Features & Information

тригер бот (моментальная стрельба по игрокам) вх аим по зажиманию клавиши E один выстрел
#for roblox#one touch#for all plases

Community Comments (2)

pasterpasterFeb 16, 2026

Стилерр стилит куки

incatoincatoFeb 20, 2026

опен сурс кому ты врешь

More Scripts for [Update] OneShot