Death Zone Script GUI | ITEM ESP, BASE NOCLIP & MORE!

Created by 9etie#0001

Features:

  • ITEM ESP
  • BASE NO CLIP
  • WALKSPEED
  • PLAYER ESP
  • ALWAYS DAY
  • LEAVE IF STAFF JOIN
  •  
  • DEV NOTES:
  • Right Shift to toggle GUI
local UI = loadstring(game:HttpGet("https://pastebin.com/raw/tBv8Ex5G"))()
local Window = UI:Main("Death Zone", "", "RightShift", "OrangeTheme")

local CharacterTab = Window:Tab("Character")
local ItemESPTab = Window:Tab("Item ESP")
local PlayerESPTab = Window:Tab("Player ESP")
local MiscTab = Window:Tab("Misc")

local players = game:GetService("Players")
local runservice = game:GetService("RunService")
local player = players.LocalPlayer
local heartbeat = runservice.Heartbeat
local stepped = runservice.Stepped
local lighting = game:GetService("Lighting")
local camera = game:GetService("Workspace").CurrentCamera
local workspace = game:GetService("Workspace")

local CharSection = CharacterTab:Section()

wsBypass = false
CharSection:Toggle("Walk Speed", function(state)
    wsBypass = state
end)

wsSpeed = 16
CharSection:Slider(57, 0, "Walk Speed Value", function(value)
    wsSpeed = value
end)

do
    local oldindex; oldindex = hookmetamethod(game, "__index", function(a, b) -- step 1 / bypass walkspeed
        if tostring(a) == "Humanoid" and tostring(b) == "WalkSpeed" and wsBypass then
            return 16
        end return oldindex(a, b)
    end)
    
    local oldnewindex; oldnewindex = hookmetamethod(game, "__newindex", function(a,b,c) -- step 2 / bypass walkspeed
        if tostring(a) == "Humanoid" and tostring(b) == "WalkSpeed" and wsBypass then
            return oldnewindex(a, b, wsSpeed)
        end return oldnewindex(a, b, c)
    end)
end

jmpBypass = false
CharSection:Toggle("Jump Power", function(state)
    jmpBypass = state
end)

jmpPower = 50
CharSection:Slider(120, 0, "Jump Power Value", function(value)
    jmpPower = value
end)

do
    local oldindex; oldindex = hookmetamethod(game, "__index", function(a, b) -- step 1 / bypass jump power
        if tostring(a) == "Humanoid" and tostring(b) == "JumpPower" then
            return 50
        end return oldindex(a, b)
    end)
    
    heartbeat:Connect(function() -- step 2 / bypass jump power
        pcall(function()
            if jmpBypass then 
                player.Character.Humanoid.JumpPower = jmpPower
            else
                player.Character.Humanoid.JumpPower = 50
            end
        end)
    end)
end

noclip = false
CharSection:Toggle("No Clip", function(state)
    noclip = state
end)

CharSection:Button("No Jump Cooldown", function()
    while wait() do
        debug.setupvalue(getsenv(player.Backpack.JumpDisabler).f1, 3, 0)
        debug.setupvalue(getsenv(player.Backpack.JumpDisabler).f1, 2, function() return 1 end)
    end
end)

do
    stepped:Connect(function()
        pcall(function() if noclip then for i,v in pairs(player.Character:GetChildren()) do
            if v:IsA("BasePart") then
                v.CanCollide = false
            end
        end end end)
    end)
end


local MiscSection = MiscTab:Section()

alwaysday = false
MiscSection:Toggle("Always Day", function(state)
    alwaysday = state
end)

do
    lighting.Changed:Connect(function()
        if alwaysday then
            lighting.TimeOfDay = "13:00:00"
        end
    end)
end

MiscSection:KeyBind("Phase Through Wall", "LeftAlt", function()
    local oldNState = noclip
    local nCounter = 0
    noclip = true

    spawn(function()
        for i=1, 15 do
            wait(.5)
            nCounter += 1
        end
    end)

    local a = player.Character.HumanoidRootPart.Position - player.Character.HumanoidRootPart.CFrame.lookVector
    repeat wait() player.Character:MoveTo(a) until nCounter == 1

    local b = player.Character.HumanoidRootPart.Position - Vector3.new(0,10,0)
    repeat wait() player.Character:MoveTo(b) until nCounter == 3

    local c = player.Character.HumanoidRootPart.Position + player.Character.HumanoidRootPart.CFrame.lookVector*7
    repeat wait() player.Character:MoveTo(c) until nCounter == 5

    local d = player.Character.HumanoidRootPart.Position + Vector3.new(0,11,0)
    repeat wait() player.Character:MoveTo(d) until nCounter == 7

    noclip = oldNState
end)

leaveifstaff = false
MiscSection:Toggle("Leave If Staff Join", function(state)
    leaveifstaff = state
    for i,v in pairs(players:GetPlayers()) do
        if isStaff(player.UserId) and leaveifstaff then
            player:Kick("Left due to staff joining!")
        end
    end
end)

function isStaff(playerid)
    staffids = {367786152, 2573930396, 161219416, 501061949, 83353996, 46127169}
    for i,v in pairs(staffids) do
        if playerid == v then
            return true
        end
    end return false
end

do
    players.PlayerAdded:Connect(function(player)
        if isStaff(player.UserId) and leaveifstaff then
            player:Kick("Left due to staff joining!")
        end
    end)
end

MiscSection:Button("Rejoin Same Server", function(state)
    game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId, game.JobId)
end)


local EspSection = PlayerESPTab:Section()

pName = false
EspSection:Toggle("Name", function(state)
    pName = state
end)

pHp = false
EspSection:Toggle("Health", function(state)
    pHp = state
end)

pDistance = false
EspSection:Toggle("Distance", function(state)
    pDistance = state
end)

pTracers = false
EspSection:Toggle("Tracers", function(state)
    pTracers = state
end)

pBoxes = false
EspSection:Toggle("Boxes", function(state)
    pBoxes = state
end)

pEnableRenderRange = false
EspSection:Toggle("Enable Render Range", function(state)
    pEnableRenderRange = state
end)

pRenderRange = 1500
EspSection:Slider(3000, 0, "Render Range", function(value)
    pRenderRange = value
end)

function isCloseEnough(plr)
    if not pEnableRenderRange then return true end
    local estimation;

    if plr.Character:FindFirstChild("HumanoidRootPart") == nil then
        estimation = Vector3.new(plr.Character.CamCFrame.Value.X, plr.Character.CamCFrame.Value.Y, plr.Character.CamCFrame.Value.Z)
    else
        estimation = plr.Character.HumanoidRootPart.Position
    end

    if ((estimation-player.Character.HumanoidRootPart.Position).Magnitude * 0.28) < pRenderRange then
        return true
    else
        return false
    end
end

function tracerPlr(plr)
    local overRun = 0
    repeat wait() overRun += 1 until not plr or not plr.Character or plr.Character:FindFirstChild("HumanoidRootPart") ~= nil or not plr.Character or overRun > 400 or plr.Character:FindFirstChild("CamCFrame")
    if overRun > 400 or not plr.Character or not plr then return end


    local pos, vis;
    if plr.Character:FindFirstChild("HumanoidRootPart") == nil then
        local estimation = Vector3.new(plr.Character.CamCFrame.Value.X, plr.Character.CamCFrame.Value.Y, plr.Character.CamCFrame.Value.Z)
        pos, vis = camera:WorldToScreenPoint(estimation)
    elseif plr.Character:FindFirstChild("HumanoidRootPart") ~= nil then
        pos, vis = camera:WorldToScreenPoint(plr.Character.HumanoidRootPart.Position)
    end

    local line = Drawing.new("Line")
    line.From = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y)
    line.To = Vector2.new(pos.x, pos.y - 20)
    line.Color = Color3.fromRGB(255,255,255)
    line.Thickness = 1.5
    line.Transparency = 0.5

    local update
    update = stepped:connect(function()
        if (not plr.Character:FindFirstChild("HumanoidRootPart") and not plr.Character:FindFirstChild("CamCFrame")) or not isCloseEnough(plr) or not pTracers then
            line.Visible = false
        else
            local estimation = Vector3.new(plr.Character.CamCFrame.Value.X, plr.Character.CamCFrame.Value.Y, plr.Character.CamCFrame.Value.Z)
            if plr.Character:FindFirstChild("Head") == nil then
                pos, vis = camera:WorldToScreenPoint(estimation)
            else
                pos, vis = camera:WorldToScreenPoint(plr.Character.Head.Position - Vector3.new(0,3,0))
            end
            if vis then line.To = Vector2.new(pos.x, pos.y) line.Visible = true else line.Visible = false end
        end
    end)

    local leaveManager
    leaveManager = players.PlayerRemoving:Connect(function(lplr)
        if lplr.Name == plr.Name then update:Disconnect() line:Remove() leaveManager:Disconnect() end
    end)
end

function boxPlr(plr)
    local overRun = 0
    repeat wait() overRun += 1 until not plr or not plr.Character or plr.Character:FindFirstChild("HumanoidRootPart") ~= nil or not plr.Character or overRun > 400
    if overRun > 400 or not plr.Character or not plr then return end

    local pos, vis = camera:WorldToScreenPoint(plr.Character.HumanoidRootPart.Position)

    local box = Drawing.new("Quad")
    box.PointA = Vector2.new()
    box.PointB = Vector2.new()
    box.PointC = Vector2.new()
    box.PointD = Vector2.new()
    box.Color = Color3.fromRGB(255,255,255)
    box.Thickness = 1.5
    box.Transparency = 1

    local update
    update = stepped:connect(function()
        if not plr.Character:FindFirstChild("HumanoidRootPart") or not isCloseEnough(plr) or not pBoxes then
            box.Visible = false
        else
            local pos, vis = camera:WorldToScreenPoint(plr.Character.HumanoidRootPart.Position)

            local size = Vector3.new(2,3,0) * plr.Character.Head.Size.Y
            local topright = (plr.Character.HumanoidRootPart.CFrame * CFrame.new(-size.X, -size.Y, 0)).Position
            local topleft = (plr.Character.HumanoidRootPart.CFrame * CFrame.new(size.X, -size.Y, 0)).Position
            local bottomright = (plr.Character.HumanoidRootPart.CFrame * CFrame.new(-size.X, size.Y, 0)).Position
            local bottomleft = (plr.Character.HumanoidRootPart.CFrame * CFrame.new(size.X, size.Y, 0)).Position

            local convertedTopright, visrt = camera:WorldToScreenPoint(topright)
            local convertedTopleft, vislt = camera:WorldToScreenPoint(topleft)
            local convertedBottomright, visrb = camera:WorldToScreenPoint(bottomright)
            local convertedBottomleft, vislb = camera:WorldToScreenPoint(bottomleft)

            if vis then
                box.Visible = true
                box.PointA = Vector2.new(convertedTopright.X, convertedTopright.Y + 36)
                box.PointB = Vector2.new(convertedTopleft.X, convertedTopleft.Y + 36)
                box.PointC = Vector2.new(convertedBottomleft.X, convertedBottomleft.Y + 36)
                box.PointD = Vector2.new(convertedBottomright.X, convertedBottomright.Y + 36) 
            else 
                box.Visible = false 
            end
        end
    end)

    local leaveManager
    leaveManager = players.PlayerRemoving:Connect(function(lplr)
        if lplr.Name == plr.Name then update:Disconnect() box:Remove() leaveManager:Disconnect() end
    end)
end

function nametagPlr(plr)
    local overRun = 0
    repeat wait() overRun += 1 until not plr or not plr.Character or plr.Character:FindFirstChild("HumanoidRootPart") ~= nil or not plr.Character or overRun > 400 or plr.Character:FindFirstChild("CamCFrame")
    if overRun > 400 or not plr.Character or not plr then return end

    local pos, vis;
    if plr.Character:FindFirstChild("HumanoidRootPart") == nil then
        local estimation = Vector3.new(plr.Character.CamCFrame.Value.X, plr.Character.CamCFrame.Value.Y, plr.Character.CamCFrame.Value.Z)
        pos, vis = camera:WorldToScreenPoint(estimation)
    elseif plr.Character:FindFirstChild("HumanoidRootPart") ~= nil then
        pos, vis = camera:WorldToScreenPoint(plr.Character.HumanoidRootPart.Position)
    end


    local nametag = Drawing.new("Text")
    nametag.Text = plr.Name
    nametag.Position = Vector2.new(pos.x, pos.y)
    nametag.Size = 18
    nametag.Color = Color3.fromRGB(255,255,255)
    nametag.Outline = true
    nametag.Center = true

    local update
    update = stepped:connect(function()
        if (not plr.Character:FindFirstChild("HumanoidRootPart") and not plr.Character:FindFirstChild("CamCFrame")) or not isCloseEnough(plr) then
            nametag.Visible = false
        else
            local estimation = Vector3.new(plr.Character.CamCFrame.Value.X, plr.Character.CamCFrame.Value.Y, plr.Character.CamCFrame.Value.Z)
            if plr.Character:FindFirstChild("HumanoidRootPart") == nil then
                pos, vis = camera:WorldToScreenPoint(estimation)
            else
                pos, vis = camera:WorldToScreenPoint(plr.Character.HumanoidRootPart.Position)
            end

            if vis then
                nametag.Position = Vector2.new(pos.x, pos.y) 
                nametag.Visible = true
                nametag.Text = ""

                if pName then
                    nametag.Text = plr.Name
                end

                local distance;
                if pDistance then
                    if plr.Character:FindFirstChild("HumanoidRootPart") == nil then
                        local estimation = Vector3.new(plr.Character.CamCFrame.Value.X, plr.Character.CamCFrame.Value.Y, plr.Character.CamCFrame.Value.Z)
                        distance = math.floor((estimation-player.Character.HumanoidRootPart.Position).Magnitude*0.28)
                    else
                        distance = math.floor((plr.Character.HumanoidRootPart.Position-player.Character.HumanoidRootPart.Position).Magnitude*0.28)
                    end
                    nametag.Text = nametag.Text.." | "..tostring(distance).."m"
                end

                if pHp then
                    nametag.Text = nametag.Text.." | "..tostring(math.floor(plr.leaderstats.Health.Value)).."hp"
                end
            else
                nametag.Visible = false
            end
        end
    end)

    local leaveManager
    leaveManager = players.PlayerRemoving:Connect(function(lplr)
        if lplr.Name == plr.Name then update:Disconnect() nametag:Remove() leaveManager:Disconnect() end
    end)
end

function applyEsp(plr)
    spawn(function() boxPlr(plr) tracerPlr(plr) nametagPlr(plr) end)
end

for i,v in pairs(players:GetPlayers()) do
    if v ~= player and v.Character and v then applyEsp(v) end
end

players.PlayerAdded:Connect(function(plr)
    wait(2) applyEsp(plr)
end)

local foodEsp = false
local ammoEsp = false
local gunEsp = false
local matEsp = false
local miscEsp = false
local attachmentsEsp = false
local armorEsp = false
local vehicleEsp = false
local deathbagEsp = false

local updatingI = false

local iRenderRange = 200
local counter = 0

local types = setmetatable({
    ["WaterBottle"] = "food",
    ["Chips"] = "food",
    ["FirstAidKit"] = "food",
    ["CannedSoup"] = "food",
    ["Lemonade"] = "food",
    ["Soda"] = "food",
    ["Bandage"] = "food",
    ["MRE"] = "food",
    
    ["Stone"] = "mats",
    ["Metal"] = "mats",
    ["Wood"] = "mats",
    
    ["Fuel"] = "misc",
    ["BloodBag"] = "misc",
    
    ["SCARL"] = "guns",
    ["ASVAL"] = "guns",
    ["Beretta"] = "guns",
    ["ACWR"] = "guns",
    ["Magnum"] = "guns",
    ["M60"] = "guns",
    ["SPAS12"] = "guns",
    ["AK74M"] = "guns",
    ["M16"] = "guns",
    ["M1014"] = "guns",
    ["AK47"] = "guns",
    ["AEK971"] = "guns",
    ["MP7"] = "guns",
    ["M1911"] = "guns",
    ["P90"] = "guns",
    ["Minigun"] = "guns",
    ["Deagle"] = "guns",
    ["870MCS"] = "guns",
    ["AWP"] = "guns",
    ["M1Garand"] = "guns",
    ["PPSH41"] = "guns",
    ["DoubleBarrel"] = "guns",
    ["AUG"] = "guns"
}, {
    __index = function(a, b)
        if string.find(b, "Mag") ~= nil then
            return "ammo"
        elseif string.find(b, "Barricade") ~= nil then
            return "misc"
        elseif string.find(b, "Attach") ~= nil then
            return "attachments"
        elseif string.find(b, "Vest") ~= nil or string.find(b, "Helmet") ~= nil or string.find(b, "Backpack") ~= nil or string.find(b, "Nightvision") ~= nil then
            return "armor" 
        end return nil
    end
})

function isOn(itype)
    if itype == "food" then
        return foodEsp
    elseif itype == "ammo" then
        return ammoEsp
    elseif itype == "guns" then 
        return gunEsp
    elseif itype == "mats" then
        return matEsp
    elseif itype == "misc" then
        return miscEsp
    elseif itype == "attachments" then
        return attachmentsEsp
    elseif itype == "armor" then
        return armorEsp
    elseif type == "car" then
        return vehicleEsp
    end
end

function addEsp(item, itemType)
    local partSet = "MainPart"
    if itemType == "mats" then partSet = "Union" elseif itemType == "car" then partSet = "Chassis" end
    
    if item == nil or item:FindFirstChild(partSet) == nil then return end

    local removed = not item:IsDescendantOf(workspace.GameStructures)
    if removed then return end

    local mainpart = item[partSet]
    
    local pos,vis = camera:WorldToScreenPoint(mainpart.Position)
    
    local nametag = Drawing.new("Text")
    if itemType == "car" then 
        nametag.Text = tostring(item)
    else
        nametag.Text = tostring(item.Config.ItemName.Value)
    end
    nametag.Position = Vector2.new(pos.x, pos.y)
    nametag.Size = 18
    nametag.Color = Color3.fromRGB(255,255,255)
    nametag.Outline = true
    nametag.Center = true
    
    counter += 1
    
    local update
    update = stepped:connect(function()
        pcall(function()
            local removed = not item:IsDescendantOf(workspace.GameStructures)
            if removed or updatingI then
                counter -= 1
                nametag:Remove()
                update:Disconnect()
            end
            local pos,vis = camera:WorldToScreenPoint(mainpart.Position)
            if vis and isOn(itemType) then
                if ((mainpart.Position-player.Character.HumanoidRootPart.Position).Magnitude * 0.28) < iRenderRange then
                    nametag.Position = Vector2.new(pos.x, pos.y)
                    nametag.Visible = true
                else
                    nametag.Visible = false
                end
            else
                nametag.Visible = false
            end
        end)
    end)
end

local ItemEspSection = ItemESPTab:Section()

ItemEspSection:Button("Update Item Esp", function()
    updatingI = true
    repeat wait() until counter == 0 wait()
    updatingI = false

    for i,v in pairs(workspace.GameStructures:GetChildren()) do
        for i2, a in pairs(v.Items:GetChildren()) do
            addEsp(a, types[tostring(a)]) 
        end
    end

    for i,v in pairs(workspace.Cars:GetChildren()) do
        addEsp(a, "car")
    end
end)

ItemEspSection:Toggle("Food/Meds", function(state)
    foodEsp = state
end)

ItemEspSection:Toggle("Ammo", function(state)
    ammoEsp = state
end)

ItemEspSection:Toggle("Guns", function(state)
    gunEsp = state
end)

ItemEspSection:Toggle("Mats", function(state)
    matEsp = state
end)

ItemEspSection:Toggle("Misc", function(state)
    miscEsp = state
end)

ItemEspSection:Toggle("Attachments", function(state)
    attachmentsEsp = state
end)

ItemEspSection:Toggle("Armor", function(state)
    armorEsp = state
end)

ItemEspSection:Toggle("Vehicles", function(state)
    vehicleEsp = state
end)

ItemEspSection:Slider(2500, 0, "Render Range", function(value)
    iRenderRange = value
end)

warn(tostring(math.random(11111,99999)).." | ".."Ran successfully!")

ENJOY!

Warning: DO NOT DOWNLOAD anything from this page, you’re only here to copy the script!

Share This Post

Share on facebook
Share on linkedin
Share on twitter
Share on email

More Scripts!

TOP 10 TRENDING SCRIPTS