UTSRX script
Key Required

UTSRX script

Undertale Soul's RPG X [DREAMTALE]fahhhhhhhhhfahhhhhhhhh 1.7K views 249 executesUpdated Apr 26, 2026
Unrated
00
Lua Script•418 lines (14669 chars)
-- If you cannot execute, remove this section
local allowedPlaceIds = {
    80444070108663,
    76997737036760,
    103213977916649,
    138122348850650,
    127114456405096
}
if not table.find(allowedPlaceIds, game.PlaceId) then return end
-- End of place ID check

local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()

-- ========== UTILITIES ==========
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local workspace = game:GetService("Workspace")
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

local function getCharacter()
    return player.Character
end

local function getHumanoid()
    local char = getCharacter()
    return char and char:FindFirstChild("Humanoid")
end

local function getPlayerPos()
    local char = getCharacter()
    return char and char:FindFirstChild("HumanoidRootPart") and char.HumanoidRootPart.Position or nil
end

-- ========== KILL SYSTEM ==========
local killEnabled = false
local killRadius = 50
local killThreshold = 0.7
local manualKillRadius = 50

local function getAllHumanoids()
    local list = {}
    for _, obj in pairs(workspace:GetDescendants()) do
        if obj:IsA("Humanoid") then
            local char = obj.Parent
            if char and char ~= getCharacter() then
                table.insert(list, obj)
            end
        end
    end
    return list
end

local function killHumanoid(hum)
    if hum and hum.Parent and hum.Health > 0 then
        hum.Health = 0
    end
end

local function killInRange(radius, useThreshold)
    local playerPos = getPlayerPos()
    if not playerPos then return end
    local killed = 0
    for _, hum in pairs(getAllHumanoids()) do
        local char = hum.Parent
        local root = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("Head")
        if root and (root.Position - playerPos).Magnitude <= radius then
            if useThreshold then
                local max = hum.MaxHealth
                if max > 0 and (hum.Health / max) <= killThreshold then
                    killHumanoid(hum)
                    killed = killed + 1
                end
            else
                killHumanoid(hum)
                killed = killed + 1
            end
        end
    end
end

task.spawn(function()
    while true do
        if killEnabled then killInRange(killRadius, true) end
        task.wait(0.8)
    end
end)

workspace.DescendantAdded:Connect(function(desc)
    if not killEnabled then return end
    if desc:IsA("Humanoid") then
        local char = desc.Parent
        if char and char ~= getCharacter() then
            task.defer(function()
                local max = desc.MaxHealth
                if max > 0 and (desc.Health / max) <= killThreshold then
                    local playerPos = getPlayerPos()
                    if playerPos then
                        local root = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") or char:FindFirstChild("Head")
                        if root and (root.Position - playerPos).Magnitude <= killRadius then
                            killHumanoid(desc)
                        end
                    end
                end
            end)
        end
    end
end)

local function manualKill()
    killInRange(manualKillRadius, false)
end

-- ========== HITBOX SYSTEM ==========
local originalHitboxSizes = {}
local maxMultiplier = 50

local function getMonsterHitboxes()
    local hitboxes = {}
    local mobsFolder = workspace:FindFirstChild("Mobs")
    if not mobsFolder then return hitboxes end
    for _, monster in pairs(mobsFolder:GetChildren()) do
        if monster:IsA("Model") then
            local hitbox = monster:FindFirstChild("Hitbox")
            if hitbox and hitbox:IsA("BasePart") then
                table.insert(hitboxes, hitbox)
            end
        end
    end
    return hitboxes
end

local function expandHitboxes(multiplier, range)
    multiplier = math.clamp(multiplier, 1, maxMultiplier)
    local playerPos = getCharacter() and getCharacter():FindFirstChild("HumanoidRootPart")
    if not playerPos then return end
    local hitboxes = getMonsterHitboxes()
    local count = 0
    for _, hitbox in pairs(hitboxes) do
        local dist = (hitbox.Position - playerPos.Position).Magnitude
        if dist <= range then
            if not originalHitboxSizes[hitbox] then
                originalHitboxSizes[hitbox] = hitbox.Size
            end
            hitbox.Size = originalHitboxSizes[hitbox] * multiplier
            count = count + 1
        end
    end
end

-- ========== MOVEMENT SYSTEM ==========
local speedEnabled = false
local speedValue = 16
local jumpEnabled = false
local jumpValue = 50
local flyEnabled = false
local flySpeed = 50
local flyBodyVelocity = nil
local flyBodyGyro = nil
local flyConnections = {}
local moveKeys = {W=false, A=false, S=false, D=false, Space=false, Ctrl=false}

local function getOriginalSpeed()
    local hum = getHumanoid()
    return hum and hum.WalkSpeed or 16
end

local function getOriginalJump()
    local hum = getHumanoid()
    return hum and hum.JumpPower or 50
end

local function applySpeed()
    local hum = getHumanoid()
    if hum then
        if speedEnabled then
            hum.WalkSpeed = speedValue
        else
            hum.WalkSpeed = getOriginalSpeed()
        end
    end
end

local function applyJump()
    local hum = getHumanoid()
    if hum then
        if jumpEnabled then
            hum.JumpPower = jumpValue
        else
            hum.JumpPower = getOriginalJump()
        end
    end
end

local function stopFly()
    if flyBodyVelocity then flyBodyVelocity:Destroy() end
    if flyBodyGyro then flyBodyGyro:Destroy() end
    flyBodyVelocity = nil
    flyBodyGyro = nil
    for _, conn in pairs(flyConnections) do conn:Disconnect() end
    flyConnections = {}
    local hum = getHumanoid()
    if hum then
        hum.PlatformStand = false
        hum:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
    end
end

local function startFly()
    if not player.Character then return end
    local hum = getHumanoid()
    local rootPart = player.Character:FindFirstChild("HumanoidRootPart")
    if not hum or not rootPart then return end
    stopFly()
    for k in pairs(moveKeys) do moveKeys[k] = false end
    hum.PlatformStand = true
    hum:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
    flyBodyVelocity = Instance.new("BodyVelocity")
    flyBodyVelocity.MaxForce = Vector3.new(1,1,1) * 100000
    flyBodyVelocity.Parent = rootPart
    flyBodyGyro = Instance.new("BodyGyro")
    flyBodyGyro.MaxTorque = Vector3.new(1,1,1) * 100000
    flyBodyGyro.Parent = rootPart
    local camera = workspace.CurrentCamera
    local function updateFlyVelocity()
        if not flyEnabled or not player.Character then return end
        local root = player.Character:FindFirstChild("HumanoidRootPart")
        if not root then return end
        local dir = Vector3.new(0,0,0)
        if moveKeys.W then dir = dir + camera.CFrame.LookVector end
        if moveKeys.S then dir = dir - camera.CFrame.LookVector end
        if moveKeys.D then dir = dir + camera.CFrame.RightVector end
        if moveKeys.A then dir = dir - camera.CFrame.RightVector end
        if moveKeys.Space then dir = dir + Vector3.new(0,1,0) end
        if moveKeys.Ctrl then dir = dir - Vector3.new(0,1,0) end
        if dir.Magnitude > 0 then
            dir = dir.Unit * flySpeed
        end
        flyBodyVelocity.Velocity = dir
        flyBodyGyro.CFrame = camera.CFrame
    end
    local moveConn = UIS.InputBegan:Connect(function(input, gp)
        if gp then return end
        if input.KeyCode == Enum.KeyCode.W then moveKeys.W = true
        elseif input.KeyCode == Enum.KeyCode.A then moveKeys.A = true
        elseif input.KeyCode == Enum.KeyCode.S then moveKeys.S = true
        elseif input.KeyCode == Enum.KeyCode.D then moveKeys.D = true
        elseif input.KeyCode == Enum.KeyCode.Space then moveKeys.Space = true
        elseif input.KeyCode == Enum.KeyCode.LeftControl or input.KeyCode == Enum.KeyCode.RightControl then moveKeys.Ctrl = true
        end
    end)
    local endConn = UIS.InputEnded:Connect(function(input, gp)
        if input.KeyCode == Enum.KeyCode.W then moveKeys.W = false
        elseif input.KeyCode == Enum.KeyCode.A then moveKeys.A = false
        elseif input.KeyCode == Enum.KeyCode.S then moveKeys.S = false
        elseif input.KeyCode == Enum.KeyCode.D then moveKeys.D = false
        elseif input.KeyCode == Enum.KeyCode.Space then moveKeys.Space = false
        elseif input.KeyCode == Enum.KeyCode.LeftControl or input.KeyCode == Enum.KeyCode.RightControl then moveKeys.Ctrl = false
        end
    end)
    local renderConn = RunService.RenderStepped:Connect(updateFlyVelocity)
    flyConnections = {moveConn, endConn, renderConn}
end

player.CharacterAdded:Connect(function(char)
    char:WaitForChild("Humanoid")
    task.wait(0.2)
    applySpeed()
    applyJump()
    if flyEnabled then startFly() end
end)

-- ========== RAYFIELD UI ==========
local Window = Rayfield:CreateWindow({
    Name = "UTSR X - Script",
    LoadingTitle = "UTSR X - Script",
    LoadingSubtitle = "by fahhhhhhhhh",
    ToggleUIKeybind = "F1",
    ConfigurationSaving = {Enabled = true, FolderName = "UTSR X", FileName = "ScriptConfig"}
})

local MainTab = Window:CreateTab("Instant Kill", "skull")
MainTab:CreateSection("Auto Kill")

local AutoKillToggle = MainTab:CreateToggle({
    Name = "Auto Kill",
    CurrentValue = false,
    Flag = "AutoKillToggle",
    Callback = function(v) killEnabled = v end
})
MainTab:CreateKeybind({
    Name = "Toggle Hotkey",
    CurrentKeybind = "B",
    Flag = "AutoKillKeybind",
    Callback = function() AutoKillToggle:Set(not killEnabled) end
})
local ThresholdSlider = MainTab:CreateSlider({
    Name = "Kill below HP (%)",
    Range = {0,100}, Increment = 5, Suffix = "%", CurrentValue = 65,
    Flag = "HealthThreshold",
    Callback = function(v) killThreshold = v / 100 end
})
local RadiusSlider = MainTab:CreateSlider({
    Name = "Range", Range = {10,100}, Increment = 5, Suffix = "Stud", CurrentValue = 50,
    Flag = "AutoKillRange",
    Callback = function(v) killRadius = v end
})
MainTab:CreateButton({
    Name = "Reset to Default",
    Callback = function()
        ThresholdSlider:Set(70); RadiusSlider:Set(50)
        killThreshold = 0.7; killRadius = 50
    end
})

MainTab:CreateSection("Manual Kill")
MainTab:CreateButton({Name = "Instant Kill", Callback = manualKill})
MainTab:CreateKeybind({Name = "Hotkey", CurrentKeybind = "V", Flag = "ManualKillKeybind", Callback = manualKill})
local ManualRadiusSlider = MainTab:CreateSlider({
    Name = "Range", Range = {10,100}, Increment = 5, Suffix = "Stud", CurrentValue = 50,
    Flag = "ManualKillRange",
    Callback = function(v) manualKillRadius = v end
})
MainTab:CreateButton({
    Name = "Reset to Default",
    Callback = function() ManualRadiusSlider:Set(50); manualKillRadius = 50 end
})

local HitBoxTab = Window:CreateTab("HitBox", "expand")
HitBoxTab:CreateSection("HitBox Expansion")
HitBoxTab:CreateLabel("Don't press too many times on the same mob")

local HitboxMultiplier, HitboxRange = nil, nil
HitBoxTab:CreateButton({
    Name = "Expand Hitboxes",
    Callback = function()
        local mult = (HitboxMultiplier and HitboxMultiplier.CurrentValue) or 5
        local rng = (HitboxRange and HitboxRange.CurrentValue) or 50
        expandHitboxes(mult, rng)
    end
})
HitBoxTab:CreateKeybind({
    Name = "Expand Hotkey", CurrentKeybind = "C", Flag = "HitboxKeybind",
    Callback = function()
        local mult = (HitboxMultiplier and HitboxMultiplier.CurrentValue) or 5
        local rng = (HitboxRange and HitboxRange.CurrentValue) or 50
        expandHitboxes(mult, rng)
    end
})
HitboxMultiplier = HitBoxTab:CreateSlider({
    Name = "Hitbox Size Multiplier", Range = {1,50}, Increment = 1, Suffix = "x", CurrentValue = 5,
    Flag = "HitboxMultiplier", Callback = function() end
})
HitboxRange = HitBoxTab:CreateSlider({
    Name = "Range", Range = {10,100}, Increment = 5, Suffix = "Stud", CurrentValue = 50,
    Flag = "HitboxRange", Callback = function() end
})
HitBoxTab:CreateButton({
    Name = "Reset Settings",
    Callback = function()
        HitboxMultiplier:Set(5); HitboxRange:Set(50)
    end
})

local MiscTab = Window:CreateTab("Misc", "box")
MiscTab:CreateSection("Speed")
local SpeedToggle = MiscTab:CreateToggle({
    Name = "Speed", CurrentValue = false, Flag = "SpeedToggle",
    Callback = function(v) speedEnabled = v; applySpeed() end
})
local SpeedSlider = MiscTab:CreateSlider({
    Name = "Speed Value", Range = {16,500}, Increment = 1, Suffix = "WalkSpeed", CurrentValue = 16,
    Flag = "SpeedValue",
    Callback = function(v) speedValue = v; if speedEnabled then applySpeed() end end
})
MiscTab:CreateSection("Jump")
local JumpToggle = MiscTab:CreateToggle({
    Name = "Jump", CurrentValue = false, Flag = "JumpToggle",
    Callback = function(v) jumpEnabled = v; applyJump() end
})
local JumpSlider = MiscTab:CreateSlider({
    Name = "Jump Value", Range = {1,200}, Increment = 1, Suffix = "JumpPower", CurrentValue = 50,
    Flag = "JumpValue",
    Callback = function(v) jumpValue = v; if jumpEnabled then applyJump() end end
})
MiscTab:CreateSection("Fly")
local FlyToggle = MiscTab:CreateToggle({
    Name = "Fly", CurrentValue = false, Flag = "FlyToggle",
    Callback = function(v) flyEnabled = v; if v then startFly() else stopFly() end end
})
MiscTab:CreateKeybind({
    Name = "Fly Hotkey", CurrentKeybind = "H", Flag = "FlyHotkey",
    Callback = function() FlyToggle:Set(not flyEnabled) end
})
local FlySlider = MiscTab:CreateSlider({
    Name = "Fly Speed", Range = {16,300}, Increment = 1, Suffix = "Speed", CurrentValue = 50,
    Flag = "FlySpeed",
    Callback = function(v) flySpeed = v end
})
MiscTab:CreateSection("Reset")
MiscTab:CreateButton({
    Name = "Reset Everything",
    Callback = function()
        AutoKillToggle:Set(false)
        ThresholdSlider:Set(70); RadiusSlider:Set(50)
        killEnabled = false; killThreshold = 0.7; killRadius = 50
        ManualRadiusSlider:Set(50); manualKillRadius = 50
        HitboxMultiplier:Set(5); HitboxRange:Set(50)
        SpeedToggle:Set(false); SpeedSlider:Set(16)
        speedEnabled = false; speedValue = 16; applySpeed()
        JumpToggle:Set(false); JumpSlider:Set(50)
        jumpEnabled = false; jumpValue = 50; applyJump()
        if flyEnabled then FlyToggle:Set(false) end
        FlySlider:Set(50); flySpeed = 50
    end
})

Rayfield:LoadConfiguration()

Features & Information

- Instant Kill - HitBox Expand Speed Hack Super jump Fly My first script

Community Comments (1)

markmobileboxmarkmobileboxMay 7, 2026

Good Script but the Autokill doesnt actually reward with anything