Keyless
NightFall
Run it
Copy the script and paste it into your executor.
NightFall.lua · 2,917 lines
--========================================================--
-- SERVICES
--========================================================--
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")
local Workspace = game:GetService("Workspace")
local LocalPlayer = Players.LocalPlayer
--========================================================--
-- WINDUI
--========================================================--
local WindUI = loadstring(game:HttpGet(
"https://raw.githubusercontent.com/Footagesus/WindUI/main/dist/main.lua"
))()
--========================================================--
-- SETTINGS
--========================================================--
local Settings = {
AntiJump = false,
AutoSprint = false,
Underground = false,
UndergroundDepth = 8,
UndergroundSpeed = 20,
QuickRespawn = false,
ESP = false,
TeamColors = true,
Highlight = true,
HighlightColor = Color3.fromRGB(255, 70, 70),
HighlightTransparency = 0.5,
FireRateMultiplier = 1.0,
Fullbright = false,
TargetTeam = false,
RapidFire = false,
FireRate = 0.05,
Hitbox = false,
HitboxSize = 6,
}
--========================================================--
-- STATE
--========================================================--
local UndergroundConnection = nil
local UndergroundSavedCFrame = nil
local CharacterConnection = nil
local DeathConnection = nil
local CharacterTrackConnection = nil
local LastAliveCFrame = nil
local LastDeathCFrame = nil
local ESPObjects = {}
local HitboxObjects = {}
local OriginalLighting = {
Brightness = Lighting.Brightness,
ClockTime = Lighting.ClockTime,
FogEnd = Lighting.FogEnd,
FogStart = Lighting.FogStart,
Ambient = Lighting.Ambient,
OutdoorAmbient = Lighting.OutdoorAmbient,
GlobalShadows = Lighting.GlobalShadows,
ExposureCompensation = Lighting.ExposureCompensation,
}
--========================================================--
-- CHARACTER
--========================================================--
local function getCharacter()
local Character = LocalPlayer.Character
if not Character then
return nil, nil, nil
end
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
local Root = Character:FindFirstChild("HumanoidRootPart")
return Character, Humanoid, Root
end
--========================================================--
-- ESP
--========================================================--
local function removeESP(Player)
local Object = ESPObjects[Player]
if Object then
if Object.Highlight then
Object.Highlight:Destroy()
end
if Object.Billboard then
Object.Billboard:Destroy()
end
ESPObjects[Player] = nil
end
end
local function getPlayerColor(Player)
if Settings.TeamColors
and Player.Team
and Player.Team.TeamColor then
return Player.Team.TeamColor.Color
end
return Settings.HighlightColor
end
local function createESP(Player)
if Player == LocalPlayer then
return
end
removeESP(Player)
local Character = Player.Character
if not Character then
return
end
local Root =
Character:FindFirstChild("HumanoidRootPart")
if not Root then
return
end
local HighlightObject = nil
if Settings.Highlight then
HighlightObject =
Instance.new("Highlight")
HighlightObject.Name =
"NightfallHighlight"
HighlightObject.Adornee =
Character
HighlightObject.DepthMode =
Enum.HighlightDepthMode.AlwaysOnTop
HighlightObject.FillTransparency =
Settings.HighlightTransparency
HighlightObject.OutlineTransparency = 0
HighlightObject.FillColor =
getPlayerColor(Player)
HighlightObject.OutlineColor =
getPlayerColor(Player)
HighlightObject.Parent =
Character
end
local Billboard =
Instance.new("BillboardGui")
Billboard.Name =
"NightfallESP"
Billboard.Adornee =
Root
Billboard.Size =
UDim2.fromOffset(220, 55)
Billboard.StudsOffset =
Vector3.new(0, 3.2, 0)
Billboard.AlwaysOnTop = true
Billboard.Active = true
local Label =
Instance.new("TextButton")
Label.BackgroundTransparency = 1
Label.Size = UDim2.fromScale(1, 1)
Label.Font =
Enum.Font.GothamSemibold
Label.TextSize = 13
Label.TextStrokeTransparency = 0.5
Label.TextColor3 =
getPlayerColor(Player)
Label.Text = Player.DisplayName
Label.AutoButtonColor = false
Label.Active = true
Label.Selectable = false
Label.Parent = Billboard
Label:SetAttribute("NF_Owner", Player.UserId)
Billboard.Parent = Root
ESPObjects[Player] = {
Highlight = HighlightObject,
Billboard = Billboard,
Label = Label
}
end
local function updateESP()
for _, Player in ipairs(Players:GetPlayers()) do
if Player ~= LocalPlayer then
if Settings.ESP then
if not ESPObjects[Player]
and Player.Character then
createESP(Player)
end
local Object =
ESPObjects[Player]
if Object
and Object.Label then
local Character =
Player.Character
local Humanoid =
Character
and Character:FindFirstChildOfClass(
"Humanoid"
)
local Root =
Character
and Character:FindFirstChild(
"HumanoidRootPart"
)
local _, _, MyRoot =
getCharacter()
local DistanceText = ""
if Root and MyRoot then
local Distance =
math.floor(
(
Root.Position
- MyRoot.Position
).Magnitude
)
DistanceText =
" [" .. Distance .. "m]"
end
local HealthText = ""
if Humanoid then
HealthText =
" | "
.. math.floor(
Humanoid.Health
)
.. " HP"
end
Object.Label.Text =
Player.DisplayName
.. DistanceText
.. HealthText
Object.Label.TextColor3 =
getPlayerColor(Player)
end
else
removeESP(Player)
end
end
end
end
--========================================================--
-- CLICK HOTKEY TP
--========================================================--
local ESP_CLICK_RADIUS = 60
local ESP_CLICK_COOLDOWN = 0.3
local _lastTeleportTime = 0
local TP_MODIFIER_KEY = Enum.KeyCode.LeftShift
local _tpKeyHeld = false
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard
and (input.KeyCode == Enum.KeyCode.LeftShift
or input.KeyCode == Enum.KeyCode.RightShift) then
_tpKeyHeld = true
end
end)
UserInputService.InputEnded:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard
and (input.KeyCode == Enum.KeyCode.LeftShift
or input.KeyCode == Enum.KeyCode.RightShift) then
_tpKeyHeld = false
end
end)
local function teleportToRoot(targetRoot)
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if not myRoot or not targetRoot then return end
local targetLook = targetRoot.CFrame.LookVector
local newPos = targetRoot.Position - targetLook * 3
myRoot.CFrame = CFrame.new(newPos, targetRoot.Position)
myRoot.AssemblyLinearVelocity = Vector3.zero
myRoot.AssemblyAngularVelocity = Vector3.zero
end
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if not _tpKeyHeld then return end
local isClick = input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch
if not isClick then return end
if os.clock() - _lastTeleportTime < ESP_CLICK_COOLDOWN then return end
local clickPos
if input.UserInputType == Enum.UserInputType.Touch then
clickPos = Vector2.new(input.Position.X, input.Position.Y)
else
clickPos = Vector2.new(
UserInputService:GetMouseLocation().X,
UserInputService:GetMouseLocation().Y
)
end
local cam = workspace.CurrentCamera
if not cam then return end
local bestPlayer = nil
local bestDist = ESP_CLICK_RADIUS
for player, object in pairs(ESPObjects) do
local billboard = object.Billboard
if billboard and billboard.Adornee and billboard.Parent then
local worldPos = billboard.Adornee.Position + billboard.StudsOffset
local screenPos, onScreen = cam:WorldToViewportPoint(worldPos)
if onScreen then
local d = (Vector2.new(screenPos.X, screenPos.Y) - clickPos).Magnitude
if d < bestDist then
bestDist = d
bestPlayer = player
end
end
end
end
if not bestPlayer then return end
local targetChar = bestPlayer.Character
local targetRoot = targetChar and targetChar:FindFirstChild("HumanoidRootPart")
if not targetRoot then return end
_lastTeleportTime = os.clock()
teleportToRoot(targetRoot)
end)
--========================================================--
-- CUSTOM WEAPON VISUAL
--========================================================--
local CustomWeapon = (function()
local state = {
Enabled = false,
Saved = {},
Applied = {},
}
local CUSTOM_MESHES = {
["AK-47"] = "rbxassetid://96327891060480",
["M4A1"] = "rbxassetid://96327891060480",
["M9"] = "rbxassetid://96327891060480",
["MP5"] = "rbxassetid://96327891060480",
["Taser"] = "rbxassetid://96327891060480",
["Remington 870"] = "rbxassetid://96327891060480",
["Revolver"] = "rbxassetid://96327891060480",
}
local CUSTOM_TEXTURES = {
["AK-47"] = "rbxassetid://128702198330575",
["M4A1"] = "rbxassetid://128702198330575",
["M9"] = "rbxassetid://128702198330575",
["MP5"] = "rbxassetid://128702198330575",
["Taser"] = "rbxassetid://128702198330575",
["Remington 870"] = "rbxassetid://128702198330575",
["Revolver"] = "rbxassetid://128702198330575",
}
local function findOriginalVisuals(tool)
local list = {}
for _, d in ipairs(tool:GetDescendants()) do
if d:IsA("MeshPart") and d.Name ~= "NF_CustomWeapon" then
table.insert(list, d)
end
end
return list
end
local function createCustomMeshPart(original, meshId, textureId)
local custom = Instance.new("MeshPart")
custom.Name = "NF_CustomWeapon"
custom.MeshId = meshId
custom.TextureID = textureId or original.TextureID or ""
custom.Size = original.Size
custom.Anchored = false
custom.CanCollide = false
custom.CanQuery = false
custom.CanTouch = false
custom.Massless = true
custom.Transparency = 0
custom.CFrame = original.CFrame
custom.Parent = original.Parent
local weld = Instance.new("WeldConstraint")
weld.Part0 = custom
weld.Part1 = original
weld.Parent = custom
return custom
end
local function apply(tool)
if not tool or not tool:IsA("Tool") then return end
local meshId = CUSTOM_MESHES[tool.Name]
if not meshId then return end
if state.Applied[tool] then return end
local originals = findOriginalVisuals(tool)
if #originals == 0 then return end
local textureId = CUSTOM_TEXTURES[tool.Name]
state.Saved[tool] = {}
for _, orig in ipairs(originals) do
state.Saved[tool][orig] = orig.Transparency
orig.Transparency = 1
pcall(function()
createCustomMeshPart(orig, meshId, textureId)
end)
end
state.Applied[tool] = true
end
local function remove(tool)
if not state.Applied[tool] then return end
for _, d in ipairs(tool:GetDescendants()) do
if d.Name == "NF_CustomWeapon" then
pcall(function() d:Destroy() end)
end
end
local saved = state.Saved[tool]
if saved then
for orig, val in pairs(saved) do
if orig and orig.Parent then
pcall(function() orig.Transparency = val end)
end
end
end
state.Applied[tool] = nil
state.Saved[tool] = nil
end
local function hookTool(tool)
if not tool:IsA("Tool") then return end
tool.Equipped:Connect(function()
if state.Enabled then apply(tool) end
end)
tool.Unequipped:Connect(function()
remove(tool)
end)
if state.Enabled then apply(tool) end
end
local function hookCharacter(char)
for _, child in ipairs(char:GetChildren()) do
if child:IsA("Tool") then hookTool(child) end
end
char.ChildAdded:Connect(function(child)
if child:IsA("Tool") then
task.wait(0.2)
hookTool(child)
end
end)
char.ChildRemoved:Connect(function(child)
if child:IsA("Tool") then remove(child) end
end)
end
local function enable()
if state.Enabled then return end
state.Enabled = true
local char = LocalPlayer.Character
if char then hookCharacter(char) end
LocalPlayer.CharacterAdded:Connect(function(c)
if state.Enabled then hookCharacter(c) end
end)
end
local function disable()
if not state.Enabled then return end
state.Enabled = false
for tool in pairs(state.Applied) do
remove(tool)
end
state.Applied = {}
state.Saved = {}
end
return {
Set = function(v) if v then enable() else disable() end return state.Enabled end,
Get = function() return state.Enabled end,
SetMeshes = function(tbl)
table.clear(CUSTOM_MESHES)
for k, v in pairs(tbl) do CUSTOM_MESHES[k] = v end
end,
SetTextures = function(tbl)
table.clear(CUSTOM_TEXTURES)
for k, v in pairs(tbl) do CUSTOM_TEXTURES[k] = v end
end,
}
end)()
--========================================================--
-- HITBOX
--========================================================--
local HitboxObjects = HitboxObjects or {}
local function removeHitbox(Player)
local data = HitboxObjects[Player]
if not data then return end
local head = data.Head
if head and head.Parent and data.OriginalSize then
pcall(function()
head.Size = data.OriginalSize
end)
end
HitboxObjects[Player] = nil
end
local function isAlive(Player)
local Character = Player.Character
if not Character then return false end
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
return Humanoid ~= nil and Humanoid.Health > 0
end
local function createHitbox(Player)
removeHitbox(Player)
local Character = Player.Character
if not Character then return end
local Head = Character:FindFirstChild("Head")
if not Head then
task.spawn(function()
Head = Character:WaitForChild("Head", 5)
if not Head then return end
if not Settings.Hitbox then return end
if not isAlive(Player) then return end
if HitboxObjects[Player] then return end
local s = Settings.HitboxSize or 6
local original = Head.Size
pcall(function() Head.Size = Vector3.new(s, s, s) end)
HitboxObjects[Player] = {
Head = Head,
OriginalSize = original,
Player = Player,
}
end)
return
end
local s = Settings.HitboxSize or 6
local original = Head.Size
pcall(function()
Head.Size = Vector3.new(s, s, s)
end)
HitboxObjects[Player] = {
Head = Head,
OriginalSize = original,
Player = Player,
}
end
local _hbQueue = {}
local _hbRunning = false
local function processQueue()
if _hbRunning then return end
_hbRunning = true
task.spawn(function()
while #_hbQueue > 0 do
local job = table.remove(_hbQueue, 1)
if job
and job.Player
and job.Player.Parent
and Settings.Hitbox
and isAlive(job.Player) then
createHitbox(job.Player)
end
task.wait(0.15)
end
_hbRunning = false
end)
end
local function queueHitbox(Player)
for _, job in ipairs(_hbQueue) do
if job.Player == Player then return end
end
table.insert(_hbQueue, { Player = Player })
processQueue()
end
local function updateHitboxes()
for _, Player in ipairs(Players:GetPlayers()) do
if Player ~= LocalPlayer then
if Settings.Hitbox and isAlive(Player) then
local data = HitboxObjects[Player]
if not data
or not data.Head
or not data.Head.Parent
or data.Head ~= Player.Character:FindFirstChild("Head") then
queueHitbox(Player)
end
else
removeHitbox(Player)
end
end
end
end
local HitboxVisualObjects = HitboxVisualObjects or {}
local function removeHitboxVisual(Player)
local part = HitboxVisualObjects[Player]
if not part then return end
if part.Parent then
pcall(function() part:Destroy() end)
end
HitboxVisualObjects[Player] = nil
end
local function createHitboxVisual(Player)
removeHitboxVisual(Player)
local Character = Player.Character
if not Character then return end
local Head = Character:FindFirstChild("Head")
if not Head then return end
local s = Settings.HitboxSize or 6
local Part = Instance.new("Part")
Part.Name = "NightfallHitboxVisual"
Part.Size = Vector3.new(s, s, s)
Part.Transparency = 0.7
Part.Material = Enum.Material.ForceField
Part.Color = Settings.HitboxVisualColor or Color3.fromRGB(255, 0, 0)
Part.CastShadow = false
Part.CanCollide = false
Part.CanTouch = false
Part.CanQuery = false
Part.Massless = true
Part.Anchored = false
Part.CFrame = Head.CFrame
Part.Parent = Head
local Weld = Instance.new("WeldConstraint")
Weld.Part0 = Part
Weld.Part1 = Head
Weld.Parent = Part
HitboxVisualObjects[Player] = Part
end
local function updateHitboxVisuals()
for _, Player in ipairs(Players:GetPlayers()) do
if Player ~= LocalPlayer then
if Settings.Hitbox and Settings.HitboxVisual and isAlive(Player) then
local part = HitboxVisualObjects[Player]
local needRecreate = false
if not part or not part.Parent then
needRecreate = true
elseif part.Size.X ~= (Settings.HitboxSize or 6) then
needRecreate = true
end
if needRecreate then
createHitboxVisual(Player)
end
else
removeHitboxVisual(Player)
end
end
end
end
local DamageNumbers = (function()
local state = {
Enabled = false,
Conn = nil,
LastHP = {},
Pool = {},
}
local function spawnNumber(worldPosition, amount)
local bb = Instance.new("BillboardGui")
bb.Name = "NF_DamageNumber"
bb.Size = UDim2.fromOffset(120, 50)
bb.StudsOffset = Vector3.new(0, 0, 0)
bb.AlwaysOnTop = true
bb.LightInfluence = 0
bb.MaxDistance = 300
bb.Adornee = nil
bb.Parent = Workspace.CurrentCamera
bb.Enabled = true
local anchor = Instance.new("Part")
anchor.Name = "NF_DamageAnchor"
anchor.Size = Vector3.new(0.1, 0.1, 0.1)
anchor.Transparency = 1
anchor.CanCollide = false
anchor.CanQuery = false
anchor.CanTouch = false
anchor.Anchored = true
anchor.Massless = true
anchor.CFrame = CFrame.new(worldPosition)
anchor.Parent = Workspace.CurrentCamera
bb.Adornee = anchor
local label = Instance.new("TextLabel")
label.BackgroundTransparency = 1
label.Size = UDim2.fromScale(1, 1)
label.Font = Enum.Font.GothamBold
label.TextScaled = true
label.TextColor3 = Color3.fromRGB(255, 60, 60)
label.TextStrokeTransparency = 0
label.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
label.Text = "-" .. tostring(amount)
label.Parent = bb
task.spawn(function()
local startTime = os.clock()
local duration = 1.0
local startPos = worldPosition
local riseY = 4
while os.clock() - startTime < duration do
local t = (os.clock() - startTime) / duration
if anchor and anchor.Parent then
anchor.CFrame = CFrame.new(
startPos + Vector3.new(0, riseY * t, 0)
)
end
if label then
label.TextTransparency = t
label.TextStrokeTransparency = t
end
task.wait(0.03)
end
if bb and bb.Parent then bb:Destroy() end
if anchor and anchor.Parent then anchor:Destroy() end
end)
end
local function hookPlayer(Player)
local char = Player.Character
if not char then return end
local hum = char:FindFirstChildOfClass("Humanoid")
if not hum then return end
state.LastHP[Player] = hum.Health
local conn
conn = hum.HealthChanged:Connect(function(newHealth)
if not state.Enabled then return end
local oldHealth = state.LastHP[Player] or newHealth
state.LastHP[Player] = newHealth
local delta = oldHealth - newHealth
if delta > 0 then
local head = char:FindFirstChild("Head")
local root = char:FindFirstChild("HumanoidRootPart")
local pos
if head then
pos = head.Position + Vector3.new(0, 2, 0)
elseif root then
pos = root.Position + Vector3.new(0, 2, 0)
else
pos = Vector3.new(0, 0, 0)
end
spawnNumber(pos, math.floor(delta + 0.5))
end
end)
state.Conn = state.Conn
end
local function setupPlayer(Player)
if Player == LocalPlayer then return end
if Player.Character then
hookPlayer(Player)
end
Player.CharacterAdded:Connect(function()
task.wait(0.3)
if state.Enabled then
hookPlayer(Player)
end
end)
end
local function enable()
if state.Enabled then return end
state.Enabled = true
state.LastHP = {}
for _, Player in ipairs(Players:GetPlayers()) do
setupPlayer(Player)
end
end
local function disable()
if not state.Enabled then return end
state.Enabled = false
state.LastHP = {}
for _, obj in ipairs(Workspace.CurrentCamera:GetChildren()) do
if obj.Name == "NF_DamageNumber"
or obj.Name == "NF_DamageAnchor" then
obj:Destroy()
end
end
end
Players.PlayerAdded:Connect(function(Player)
if state.Enabled then
setupPlayer(Player)
end
end)
return {
Set = function(v)
if v then enable() else disable() end
return state.Enabled
end,
Get = function() return state.Enabled end,
}
end)()
--========================================================--
-- FULLBRIGHT
--========================================================--
local function enableFullbright()
Lighting.Brightness = 1
Lighting.ClockTime = 14
Lighting.FogStart = 100
Lighting.FogEnd = 10000
Lighting.Ambient =
Color3.fromRGB(140, 140, 140)
Lighting.OutdoorAmbient =
Color3.fromRGB(160, 160, 160)
Lighting.GlobalShadows = true
Lighting.ExposureCompensation = 0
for _, Object in ipairs(Lighting:GetChildren()) do
if Object:IsA("Atmosphere") then
pcall(function()
Object.Density = 0.1
end)
end
end
end
local function disableFullbright()
Lighting.Brightness =
OriginalLighting.Brightness
Lighting.ClockTime =
OriginalLighting.ClockTime
Lighting.FogStart =
OriginalLighting.FogStart
Lighting.FogEnd =
OriginalLighting.FogEnd
Lighting.Ambient =
OriginalLighting.Ambient
Lighting.OutdoorAmbient =
OriginalLighting.OutdoorAmbient
Lighting.GlobalShadows =
OriginalLighting.GlobalShadows
Lighting.ExposureCompensation =
OriginalLighting.ExposureCompensation
end
local function updateFullbright()
if Settings.Fullbright then
enableFullbright()
else
disableFullbright()
end
end
--========================================================--
-- RapidFire
--========================================================--
local function patchTool(tool)
if not tool or not tool:IsA("Tool") then return end
if tool:GetAttribute("ToolType") ~= "Gun" then return end
if not Settings.RapidFire then return end
local newRate = tonumber(Settings.FireRate) or 0.05
if newRate < 0.01 then newRate = 0.01 end
pcall(function()
tool:SetAttribute("FireRate", newRate)
end)
end
LocalPlayer.CharacterAdded:Connect(function(char)
task.wait(0.2)
for _, child in ipairs(char:GetChildren()) do
if child:IsA("Tool") then patchTool(child) end
end
char.ChildAdded:Connect(function(child)
if child:IsA("Tool") then
task.wait(0.3)
patchTool(child)
end
end)
end)
if LocalPlayer.Character then
for _, child in ipairs(LocalPlayer.Character:GetChildren()) do
if child:IsA("Tool") then patchTool(child) end
end
LocalPlayer.Character.ChildAdded:Connect(function(child)
if child:IsA("Tool") then
task.wait(0.3)
patchTool(child)
end
end)
end
--========================================================--
-- AUTO CRIMINAL
--========================================================--
local AutoCriminal = (function()
local state = {
Enabled = false,
Conn = nil,
LastCF = nil,
Teleporting = false,
}
local CRIMINAL_COLOR = Color3.fromRGB(218, 133, 65)
local POLICE_COLOR = Color3.fromRGB(13, 105, 172)
local CRIMINAL_SPAWN_CFRAME = CFrame.new(
-948.203491, 99.2255402, 2094.7876,
0, 0, -1,
0, 1, 0,
1, 0, 0
)
local function getIndicatorColor()
local ti = workspace:FindFirstChild("TeamIndicators")
if not ti then return nil end
local lp = ti:FindFirstChild("LocalPlayer")
if lp then
local frame = lp:FindFirstChild("Frame")
if frame and frame:IsA("GuiObject") then
return frame.BackgroundColor3
end
end
local byName = ti:FindFirstChild(LocalPlayer.Name)
if byName then
local frame = byName:FindFirstChild("Frame")
if frame and frame:IsA("GuiObject") then
return frame.BackgroundColor3
end
end
for _, v in ipairs(ti:GetChildren()) do
if v:IsA("Folder") or v:IsA("Model") then
if v.Name == LocalPlayer.Name then
local frame = v:FindFirstChild("Frame")
if frame and frame:IsA("GuiObject") then
return frame.BackgroundColor3
end
end
end
end
return nil
end
local function colorMatches(c, target, tolerance)
tolerance = tolerance or 0.02
return math.abs(c.R - target.R) < tolerance
and math.abs(c.G - target.G) < tolerance
and math.abs(c.B - target.B) < tolerance
end
local function teleportToSpawn()
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
if not root then return end
state.LastCF = root.CFrame
root.CFrame = CRIMINAL_SPAWN_CFRAME
root.AssemblyLinearVelocity = Vector3.zero
root.AssemblyAngularVelocity = Vector3.zero
task.delay(0.4, function()
local char2 = LocalPlayer.Character
local root2 = char2 and char2:FindFirstChild("HumanoidRootPart")
if root2 and state.LastCF then
root2.CFrame = state.LastCF
root2.AssemblyLinearVelocity = Vector3.zero
root2.AssemblyAngularVelocity = Vector3.zero
end
state.Teleporting = false
end)
end
local function tick()
if not state.Enabled then return end
if state.Teleporting then return end
local color = getIndicatorColor()
if not color then return end
if colorMatches(color, POLICE_COLOR) then
return
end
if colorMatches(color, CRIMINAL_COLOR) then
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
if not root then return end
local dist = (root.Position - CRIMINAL_SPAWN_CFRAME.Position).Magnitude
if dist < 5 then return end
state.Teleporting = true
teleportToSpawn()
end
end
local function enable()
if state.Enabled then return end
state.Enabled = true
if state.Conn then state.Conn:Disconnect() end
state.Conn = task.spawn(function()
while state.Enabled do
pcall(tick)
task.wait(0.42)
end
end)
end
local function disable()
state.Enabled = false
if state.Conn then
task.cancel(state.Conn)
state.Conn = nil
end
state.Teleporting = false
end
return {
Set = function(v) if v then enable() else disable() end return state.Enabled end,
Get = function() return state.Enabled end,
}
end)()
--========================================================--
-- ANTI-FLING + BLOCK CAR SEATS
--========================================================--
local AntiFling = (function()
local state = {
Enabled = false,
Conn1 = nil,
Conn2 = nil,
Conn3 = nil,
MaxSpeed = 50,
SeatHooks = {},
}
local function disableCollisions()
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
for _, v in ipairs(player.Character:GetDescendants()) do
if v:IsA("BasePart") then
v.CanCollide = false
end
end
end
end
local carContainer = workspace:FindFirstChild("CarContainer")
if carContainer then
for _, v in ipairs(carContainer:GetDescendants()) do
if v:IsA("BasePart") then
v.CanCollide = false
end
end
end
for _, v in ipairs(workspace:GetChildren()) do
if v.Name:lower():find("car") and v ~= LocalPlayer.Character then
for _, p in ipairs(v:GetDescendants()) do
if p:IsA("BasePart") then
p.CanCollide = false
end
end
end
end
end
local function clampVelocity()
local char = LocalPlayer.Character
local root = char and char:FindFirstChild("HumanoidRootPart")
if not root then return end
local v = root.AssemblyLinearVelocity
if v.Magnitude > state.MaxSpeed then
root.AssemblyLinearVelocity = Vector3.zero
root.AssemblyAngularVelocity = Vector3.zero
end
end
local function blockSeat(seat)
if not seat:IsA("VehicleSeat") and not seat:IsA("Seat") then return end
if state.SeatHooks[seat] then return end
local conn = seat:GetPropertyChangedSignal("Occupant"):Connect(function()
if not state.Enabled then return end
local occupant = seat.Occupant
if occupant then
local char = occupant.Parent
if char == LocalPlayer.Character then
pcall(function()
occupant.Sit = false
occupant:ChangeState(Enum.HumanoidStateType.GettingUp)
end)
end
end
end)
state.SeatHooks[seat] = conn
end
local function unblockAllSeats()
for seat, conn in pairs(state.SeatHooks) do
if conn then
pcall(function() conn:Disconnect() end)
end
end
state.SeatHooks = {}
end
local function scanSeats()
local carContainer = workspace:FindFirstChild("CarContainer")
if carContainer then
for _, v in ipairs(carContainer:GetDescendants()) do
if v:IsA("VehicleSeat") or v:IsA("Seat") then
blockSeat(v)
end
end
end
for _, v in ipairs(workspace:GetChildren()) do
if v.Name:lower():find("car") then
for _, s in ipairs(v:GetDescendants()) do
if s:IsA("VehicleSeat") or s:IsA("Seat") then
blockSeat(s)
end
end
end
end
end
local function enable()
if state.Enabled then return end
state.Enabled = true
state.Conn1 = RunService.Stepped:Connect(disableCollisions)
state.Conn2 = RunService.Heartbeat:Connect(clampVelocity)
scanSeats()
state.Conn3 = workspace.DescendantAdded:Connect(function(obj)
if not state.Enabled then return end
if obj:IsA("VehicleSeat") or obj:IsA("Seat") then
blockSeat(obj)
end
end)
end
local function disable()
if not state.Enabled then return end
state.Enabled = false
if state.Conn1 then state.Conn1:Disconnect(); state.Conn1 = nil end
if state.Conn2 then state.Conn2:Disconnect(); state.Conn2 = nil end
if state.Conn3 then state.Conn3:Disconnect(); state.Conn3 = nil end
unblockAllSeats()
end
return {
Set = function(v)
if v then enable() else disable() end
return state.Enabled
end,
Get = function() return state.Enabled end,
}
end)()
--========================================================--
-- UNDERGROUND
--========================================================--
local function startUnderground()
if UndergroundConnection then
UndergroundConnection:Disconnect()
UndergroundConnection = nil
end
UndergroundSavedCFrame = nil
local Character, Humanoid, Root = getCharacter()
if not Root or not Humanoid then return end
UndergroundSavedCFrame = Root.CFrame
UndergroundConnection = RunService.RenderStepped:Connect(function()
if not Settings.Underground then return end
local Character2, Humanoid2, Root2 = getCharacter()
if not Root2 or not Humanoid2 then return end
if not UndergroundSavedCFrame then return end
local Current = Root2.CFrame
local Rotation = Current - Current.Position
local NewY = UndergroundSavedCFrame.Position.Y - Settings.UndergroundDepth
Root2.CFrame = CFrame.new(
Current.Position.X,
NewY,
Current.Position.Z
) * Rotation
Root2.AssemblyLinearVelocity = Vector3.new(
Root2.AssemblyLinearVelocity.X,
0,
Root2.AssemblyLinearVelocity.Z
)
Root2.AssemblyAngularVelocity = Vector3.zero
end)
end
local function stopUnderground()
if UndergroundConnection then
UndergroundConnection:Disconnect()
UndergroundConnection = nil
end
local _, Humanoid, Root = getCharacter()
if Root then
local CurrentPos = Root.Position
local NewY = CurrentPos.Y + Settings.UndergroundDepth + 4
Root.CFrame = CFrame.new(
CurrentPos.X,
NewY,
CurrentPos.Z
) * (Root.CFrame - Root.CFrame.Position)
Root.AssemblyLinearVelocity = Vector3.zero
Root.AssemblyAngularVelocity = Vector3.zero
end
UndergroundSavedCFrame = nil
end
local function setUnderground(State)
Settings.Underground = State
if State then
startUnderground()
else
stopUnderground()
end
end
LocalPlayer.CharacterAdded:Connect(function(Character)
local Humanoid = Character:WaitForChild("Humanoid", 10)
local Root = Character:WaitForChild("HumanoidRootPart", 10)
if not Humanoid or not Root then return end
task.wait(0.5)
if Settings.Underground then
if UndergroundConnection then
UndergroundConnection:Disconnect()
UndergroundConnection = nil
end
UndergroundSavedCFrame = nil
startUnderground()
else
if UndergroundConnection then
UndergroundConnection:Disconnect()
UndergroundConnection = nil
end
UndergroundSavedCFrame = nil
end
end)
--========================================================--
-- TASE BYPASS
--========================================================--
local TaseBypass = (function()
local TASE_ANIMS = {
["rbxassetid://279227693"] = true,
["rbxassetid://279229192"] = true,
}
local DEFAULT_SPEED = 16
local DEFAULT_JUMP = 7.2
local Enabled = false
local humanoid = nil
local lastSpeed = DEFAULT_SPEED
local lastJump = DEFAULT_JUMP
local eventConns = {}
local humanoidConns = {}
local charAddedConn = nil
local PlayerTased = nil
do
local GunRemotes = ReplicatedStorage:FindFirstChild("GunRemotes")
if GunRemotes then
PlayerTased = GunRemotes:FindFirstChild("PlayerTased")
end
end
local function clearTable(t)
for _, c in ipairs(t) do
if c and type(c.Disconnect) == "function" then
pcall(function() c:Disconnect() end)
end
end
table.clear(t)
end
local function enableBackpack()
if LocalPlayer:GetAttribute("BackpackEnabled") ~= true then
LocalPlayer:SetAttribute("BackpackEnabled", true)
end
end
local function setupCharacter(character)
if not character or not Enabled then return end
local hum = character:FindFirstChildOfClass("Humanoid")
or character:WaitForChild("Humanoid", 5)
if not hum then return end
if not Enabled then return end
humanoid = hum
if hum.WalkSpeed > 0 then lastSpeed = hum.WalkSpeed end
if hum.JumpHeight > 0 then lastJump = hum.JumpHeight end
clearTable(humanoidConns)
humanoidConns[#humanoidConns + 1] =
hum:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
if hum.WalkSpeed > 0 then lastSpeed = hum.WalkSpeed end
end)
humanoidConns[#humanoidConns + 1] =
hum:GetPropertyChangedSignal("JumpHeight"):Connect(function()
if hum.JumpHeight > 0 then lastJump = hum.JumpHeight end
end)
end
local function fixTase()
if not Enabled then return end
local hum = humanoid
if not hum or not hum.Parent or hum.Health <= 0 then return end
if hum.WalkSpeed == 0 and hum.JumpHeight == 0 then
hum.WalkSpeed = lastSpeed
hum.JumpHeight = lastJump
end
for _, track in ipairs(hum:GetPlayingAnimationTracks()) do
local anim = track.Animation
if anim and TASE_ANIMS[anim.AnimationId] then
track:Stop(0)
end
end
enableBackpack()
end
local function enable()
if Enabled then return end
Enabled = true
humanoid = nil
lastSpeed = DEFAULT_SPEED
lastJump = DEFAULT_JUMP
clearTable(humanoidConns)
if PlayerTased then
eventConns[#eventConns + 1] = PlayerTased.OnClientEvent:Connect(function()
task.defer(fixTase)
end)
end
eventConns[#eventConns + 1] =
LocalPlayer:GetAttributeChangedSignal("BackpackEnabled"):Connect(function()
if Enabled and LocalPlayer:GetAttribute("BackpackEnabled") ~= true then
enableBackpack()
end
end)
charAddedConn = LocalPlayer.CharacterAdded:Connect(function(c)
humanoid = nil
task.spawn(function()
setupCharacter(c)
enableBackpack()
end)
end)
if LocalPlayer.Character then
task.spawn(function()
setupCharacter(LocalPlayer.Character)
enableBackpack()
end)
end
end
local function disable()
if not Enabled then return end
Enabled = false
clearTable(eventConns)
clearTable(humanoidConns)
if charAddedConn then
charAddedConn:Disconnect()
charAddedConn = nil
end
humanoid = nil
end
return {
Set = function(v)
if v == true then enable() else disable() end
return Enabled
end,
Get = function() return Enabled end,
}
end)()
--========================================================--
-- FE INVISIBLE
--========================================================--
local TweenService = game:GetService("TweenService")
local FEInvisible = (function()
local state = {
Enabled = false,
AnimTrack = nil,
HeartbeatConn = nil,
Highlight = nil,
Saved = {},
RenderKey = "FEInvisibleRenderStep",
}
local function getCharacter()
return LocalPlayer.Character
end
local function isAlive()
local char = getCharacter()
local hum = char and char:FindFirstChildOfClass("Humanoid")
return hum ~= nil and hum.Health > 0
end
local function getOffsets(char)
local hum = char and char:FindFirstChildOfClass("Humanoid")
local root = char and char:FindFirstChild("HumanoidRootPart")
if not hum or not root then return nil end
local isR15 = (hum.RigType == Enum.HumanoidRigType.R15)
local offsetY = hum.HipHeight + root.Size.Y / 2 - 1
return isR15, offsetY
end
local function tweenTransparency(inst, target)
TweenService:Create(
inst,
TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
{ Transparency = target }
):Play()
end
local function applyGhostTransparency()
local char = getCharacter()
if not char then return end
for _, d in ipairs(char:GetDescendants()) do
if d:IsA("BasePart") or d:IsA("Decal") or d:IsA("Texture") then
state.Saved[d] = state.Saved[d] or d.Transparency
tweenTransparency(d, 0.99)
end
end
end
local function restoreTransparency()
for inst, val in pairs(state.Saved) do
if inst and inst.Parent then
tweenTransparency(inst, val)
end
end
state.Saved = {}
end
local function createGhostHighlight()
local char = getCharacter()
if not char or state.Highlight then return end
local h = Instance.new("Highlight")
h.Name = "FEInvisibleGhostOutline"
h.FillTransparency = 1
h.OutlineColor = Color3.fromRGB(255, 255, 255)
h.OutlineTransparency = 1
h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
h.Adornee = char
h.Parent = char
TweenService:Create(
h,
TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
{ OutlineTransparency = 0.1 }
):Play()
state.Highlight = h
end
local function removeGhostHighlight()
if not state.Highlight then return end
local h = state.Highlight
state.Highlight = nil
TweenService:Create(
h,
TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out),
{ OutlineTransparency = 1 }
):Play()
task.delay(0.35, function()
pcall(function() h:Destroy() end)
end)
end
local function playInvisAnimation()
if not isAlive() then return end
local char = getCharacter()
local hum = char and char:FindFirstChildOfClass("Humanoid")
if not hum then return end
local isR15 = (hum.RigType == Enum.HumanoidRigType.R15)
local animId = isR15 and "18665825805" or "215384594"
local anim = Instance.new("Animation")
anim.AnimationId = "rbxassetid://" .. animId
local animator = hum:FindFirstChildOfClass("Animator")
if not animator then
animator = Instance.new("Animator")
animator.Parent = hum
end
state.AnimTrack = animator:LoadAnimation(anim)
state.AnimTrack.Priority = Enum.AnimationPriority.Action4
state.AnimTrack:Play(0, 0.001, 0)
anim:Destroy()
task.delay(0, function()
if state.AnimTrack then
state.AnimTrack.TimePosition = isR15 and 1.95 or 0.4
end
end)
end
local function cleanup()
if state.HeartbeatConn then
state.HeartbeatConn:Disconnect()
state.HeartbeatConn = nil
end
pcall(function()
RunService:UnbindFromRenderStep(state.RenderKey)
end)
if state.AnimTrack then
pcall(function() state.AnimTrack:Stop(0) end)
pcall(function() state.AnimTrack:Destroy() end)
state.AnimTrack = nil
end
state.Saved = {}
removeGhostHighlight()
end
local function enable()
if state.Enabled or not isAlive() then return end
state.Enabled = true
applyGhostTransparency()
createGhostHighlight()
playInvisAnimation()
pcall(function()
RunService:UnbindFromRenderStep(state.RenderKey)
end)
RunService:BindToRenderStep(
state.RenderKey,
Enum.RenderPriority.Camera.Value - 1,
function()
if not state.Enabled or not isAlive() then return end
local char = getCharacter()
local isR15, offsetY = getOffsets(char)
local root = char and char:FindFirstChild("HumanoidRootPart")
if not root or not offsetY then return end
root.CFrame = root.CFrame
* CFrame.new(0, offsetY, 0)
* CFrame.Angles(math.rad(isR15 and -180 or -90), 0, 0)
if state.AnimTrack then
state.AnimTrack:AdjustWeight(0.001)
end
end
)
state.HeartbeatConn = RunService.Heartbeat:Connect(function()
if not state.Enabled or not isAlive() then return end
local char = getCharacter()
local isR15, offsetY = getOffsets(char)
local root = char and char:FindFirstChild("HumanoidRootPart")
if not root or not offsetY then return end
root.CFrame = root.CFrame
* CFrame.new(0, -offsetY, 0)
* CFrame.Angles(math.rad(isR15 and 180 or 90), 0, 0)
if state.AnimTrack then
state.AnimTrack:AdjustWeight(100)
end
end)
end
local function disable()
if not state.Enabled then return end
state.Enabled = false
restoreTransparency()
cleanup()
end
LocalPlayer.CharacterAdded:Connect(function()
if not state.Enabled then return end
state.Enabled = false
cleanup()
task.wait(0.2)
enable()
end)
return {
Set = function(v)
if v then enable() else disable() end
return state.Enabled
end,
Get = function() return state.Enabled end,
}
end)()
--========================================================--
-- ANTI-INVIS
--========================================================--
local AntiInvis = (function()
local state = {
Enabled = false,
Conn = nil,
Markers = {},
}
local FE_ANIM_IDS = {
["rbxassetid://18665825805"] = true,
["rbxassetid://215384594"] = true,
["18665825805"] = true,
["215384594"] = true,
}
local function removeMarker(Player)
local m = state.Markers[Player]
if m and m.Parent then
m:Destroy()
end
state.Markers[Player] = nil
end
local function createMarker(Player)
removeMarker(Player)
local char = Player.Character
if not char then return end
local head = char:FindFirstChild("Head")
if not head then return end
local billboard = Instance.new("BillboardGui")
billboard.Name = "AntiInvisMarker"
billboard.Size = UDim2.fromOffset(200, 50)
billboard.StudsOffset = Vector3.new(0, 3, 0)
billboard.AlwaysOnTop = true
billboard.Adornee = head
billboard.Parent = head
local label = Instance.new("TextLabel")
label.Size = UDim2.fromScale(1, 1)
label.BackgroundTransparency = 1
label.Text = "↓ " .. Player.DisplayName .. " ↓"
label.TextColor3 = Color3.fromRGB(255, 0, 0)
label.TextStrokeTransparency = 0
label.TextScaled = true
label.Font = Enum.Font.GothamBold
label.Parent = billboard
state.Markers[Player] = billboard
end
local function isUnder(Player)
local char = Player.Character
if not char then return false end
local hum = char:FindFirstChildOfClass("Humanoid")
if not hum then return false end
local animator = hum:FindFirstChildOfClass("Animator")
if animator then
for _, track in ipairs(animator:GetPlayingAnimationTracks()) do
local anim = track.Animation
if anim
and FE_ANIM_IDS[anim.AnimationId]
and track.WeightCurrent > 0.1 then
return true
end
end
end
local root = char:FindFirstChild("HumanoidRootPart")
if root and root.Position.Y < -50 then
return true
end
return false
end
local function update()
for _, Player in ipairs(Players:GetPlayers()) do
if Player ~= LocalPlayer then
if Player.Character and isUnder(Player) then
if not state.Markers[Player] or not state.Markers[Player].Parent then
createMarker(Player)
end
else
removeMarker(Player)
end
end
end
end
local function enable()
if state.Enabled then return end
state.Enabled = true
if state.Conn then state.Conn:Disconnect() end
state.Conn = RunService.Heartbeat:Connect(update)
end
local function disable()
if not state.Enabled then return end
state.Enabled = false
if state.Conn then
state.Conn:Disconnect()
state.Conn = nil
end
for Player in pairs(state.Markers) do
removeMarker(Player)
end
end
return {
Set = function(v) if v then enable() else disable() end return state.Enabled end,
Get = function() return state.Enabled end,
}
end)()
--========================================================--
-- AUTO SPRINT
--========================================================--
local SprintState = {
ShiftHeld = false,
}
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard
and (input.KeyCode == Enum.KeyCode.LeftShift
or input.KeyCode == Enum.KeyCode.RightShift) then
SprintState.ShiftHeld = true
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Keyboard
and (input.KeyCode == Enum.KeyCode.LeftShift
or input.KeyCode == Enum.KeyCode.RightShift) then
SprintState.ShiftHeld = false
end
end)
local function updateSprint()
local Character, Humanoid = getCharacter()
if not Humanoid then return end
if Settings.Underground then
if Humanoid.WalkSpeed ~= Settings.UndergroundSpeed then
Humanoid.WalkSpeed = Settings.UndergroundSpeed
end
return
end
if SprintState.ShiftHeld then
if Humanoid.WalkSpeed ~= 24 then
Humanoid.WalkSpeed = 24
end
return
end
if Settings.AutoSprint then
if Humanoid.WalkSpeed ~= 24 then
Humanoid.WalkSpeed = 24
end
else
if Humanoid.WalkSpeed ~= 16 then
Humanoid.WalkSpeed = 16
end
end
end
--========================================================--
-- BYPASS ANTIJUMP
--========================================================--
local function updateJump()
local StarterPlayer = game:GetService("StarterPlayer")
local StarterScripts = StarterPlayer:FindFirstChild("StarterCharacterScripts")
if not StarterScripts then return end
local shouldDisable = Settings.AntiJump
local starterAntiJump = StarterScripts:FindFirstChild("AntiJump")
if starterAntiJump then
starterAntiJump.Disabled = shouldDisable
end
local char = LocalPlayer.Character
if char then
local activeAntiJump = char:FindFirstChild("AntiJump")
if activeAntiJump then
activeAntiJump.Disabled = shouldDisable
end
end
end
LocalPlayer.CharacterAdded:Connect(function(char)
task.wait(0.1)
local activeAntiJump = char:FindFirstChild("AntiJump")
if activeAntiJump then
activeAntiJump.Disabled = Settings.AntiJump
end
end)
--========================================================--
-- CHARACTER TRACKING / QUICK RESPAWN
--========================================================--
local function disconnectCharacterConnections()
if CharacterTrackConnection then
CharacterTrackConnection:Disconnect()
CharacterTrackConnection = nil
end
if DeathConnection then
DeathConnection:Disconnect()
DeathConnection = nil
end
end
local function trackCharacter(Character)
disconnectCharacterConnections()
local Humanoid =
Character:WaitForChild(
"Humanoid",
10
)
local Root =
Character:WaitForChild(
"HumanoidRootPart",
10
)
if not Humanoid or not Root then
return
end
LastAliveCFrame =
Root.CFrame
CharacterTrackConnection =
RunService.Heartbeat:Connect(function()
if not Character.Parent then
if CharacterTrackConnection then
CharacterTrackConnection:Disconnect()
CharacterTrackConnection = nil
end
return
end
if Humanoid.Health > 0
and Root.Parent then
LastAliveCFrame =
Root.CFrame
end
end)
DeathConnection =
Humanoid.Died:Connect(function()
if LastAliveCFrame then
LastDeathCFrame =
LastAliveCFrame
elseif Root then
LastDeathCFrame =
Root.CFrame
end
if CharacterTrackConnection then
CharacterTrackConnection:Disconnect()
CharacterTrackConnection = nil
end
end)
updateSprint()
updateJump()
end
LocalPlayer.CharacterAdded:Connect(function(Character)
task.wait()
trackCharacter(Character)
if Settings.QuickRespawn
and LastDeathCFrame then
local Root =
Character:WaitForChild(
"HumanoidRootPart",
10
)
if Root then
task.wait(0.15)
if Character.Parent
and Settings.QuickRespawn then
Root.CFrame =
LastDeathCFrame
end
end
end
if Settings.Underground then
task.wait(0.1)
UndergroundSavedCFrame =
nil
startUnderground()
end
end)
if LocalPlayer.Character then
task.spawn(function()
trackCharacter(
LocalPlayer.Character
)
end)
end
--========================================================--
-- KILLFEED NOTIFICATIONS
--========================================================--
local KillfeedNotify = true
local KillfeedFolder = ReplicatedStorage:WaitForChild("Killfeed", 10)
if KillfeedFolder and KillfeedFolder:IsA("Folder") then
KillfeedFolder.ChildAdded:Connect(function(child)
if not KillfeedNotify then return end
local text = child.Name
if not text or #text < 5 or text == "#" then return end
local icon = "skull"
local tcolor = child:FindFirstChild("TColor")
if tcolor and tcolor:IsA("Color3Value") then
local c = tcolor.Value
if c.R > c.B then
icon = "sword"
elseif c.B > c.R then
icon = "shield"
end
end
WindUI:Notify({
Title = "Убийство",
Content = text,
Icon = icon,
Image = nil,
Duration = 5,
Buttons = {
{
Title = "ОК",
Callback = function()
end
}
}
})
end)
end
--========================================================--
-- CLOSEST PLAYER TRACKER
--========================================================--
local TrackerGui =
Instance.new("ScreenGui")
TrackerGui.Name =
"NightfallTracker"
TrackerGui.ResetOnSpawn = false
TrackerGui.IgnoreGuiInset = true
TrackerGui.Parent =
LocalPlayer:WaitForChild("PlayerGui")
local TrackerLabel =
Instance.new("TextLabel")
TrackerLabel.BackgroundTransparency = 1
TrackerLabel.Position =
UDim2.fromOffset(15, 15)
TrackerLabel.Size =
UDim2.fromOffset(350, 30)
TrackerLabel.Font =
Enum.Font.GothamSemibold
TrackerLabel.TextSize = 13
TrackerLabel.TextXAlignment =
Enum.TextXAlignment.Left
TrackerLabel.TextColor3 =
Color3.fromRGB(255, 255, 255)
TrackerLabel.TextStrokeTransparency =
0.5
TrackerLabel.Visible =
Settings.ClosestTracker
TrackerLabel.Parent =
TrackerGui
local function updateTracker()
if not Settings.ClosestTracker then
TrackerLabel.Visible = false
return
end
TrackerLabel.Visible = true
local Player, Part, Distance =
getClosestTarget()
if not Player then
TrackerLabel.Text =
"Target: none"
return
end
local Character =
Player.Character
local Humanoid =
Character
and Character:FindFirstChildOfClass(
"Humanoid"
)
local Health =
Humanoid
and math.floor(Humanoid.Health)
or 0
TrackerLabel.Text =
string.format(
"Target: %s | %.0f px | %d HP",
Player.DisplayName,
Distance or 0,
Health
)
end
--========================================================--
-- PLAYER CONNECTIONS
--========================================================--
local function setupPlayer(Player)
if Player == LocalPlayer then
return
end
Player.CharacterAdded:Connect(function()
task.wait(0.2)
if Settings.ESP then
createESP(Player)
end
if Settings.Hitbox then
createHitbox(Player)
end
end)
Player.CharacterRemoving:Connect(function()
removeESP(Player)
removeHitbox(Player)
end)
end
for _, Player in ipairs(Players:GetPlayers()) do
setupPlayer(Player)
end
Players.PlayerAdded:Connect(setupPlayer)
Players.PlayerRemoving:Connect(function(Player)
removeESP(Player)
removeHitbox(Player)
end)
--========================================================--
-- MAIN LOOP
--========================================================--
RunService.RenderStepped:Connect(function()
if Settings.ESP then
updateESP()
end
updateHitboxVisuals()
updateHitboxes()
if Settings.Underground then
updateSprint()
end
end)
--========================================================--
-- WINDUI WINDOW
--========================================================--
local Window =
WindUI:CreateWindow({
Title = "Nightfall",
Icon = "moon",
Author = "Entervalov",
Folder = "Nightfall",
Size = UDim2.fromOffset(580, 460),
Transparent = true,
Theme = "Dark",
SideBarWidth = 170,
HasOutline = true
})
--========================================================--
-- TABS
--========================================================--
local MovementTab =
Window:Tab({
Title = "Movement",
Icon = "move"
})
local CombatTab =
Window:Tab({
Title = "Fight",
Icon = "crosshair"
})
local VisualsTab =
Window:Tab({
Title = "Visual",
Icon = "eye"
})
local SettingsTab =
Window:Tab({
Title = "Settings",
Icon = "settings"
})
--========================================================--
-- MOVEMENT
--========================================================--
MovementTab:Section({
Title = "Движение"
})
MovementTab:Toggle({
Title = "Anti-Jump",
Desc = "Disables the jump limit",
Value = false,
Callback = function(State)
Settings.AntiJump = State
updateJump()
end,
})
MovementTab:Toggle({
Title = "AutoSprint",
Desc = "Autosprint",
Value = false,
Callback = function(State)
Settings.AutoSprint = State
updateSprint()
end
})
MovementTab:Section({
Title = "Подземщик"
})
MovementTab:Toggle({
Title = "Подземщик",
Desc = "It saves the startup point and returns to it when turned off",
Value = false,
Callback = function(State)
setUnderground(State)
end
})
MovementTab:Keybind({
Title = "Подземщик (клавиша)",
Desc = "Press to assign the on/off key for the undergrounder",
Value = Enum.KeyCode.V,
Callback = function()
local Character, Humanoid = getCharacter()
if not Character or not Humanoid then return end
local newState = not Settings.Underground
setUnderground(newState)
print("[Underground]", newState and "ON" or "OFF")
end,
})
MovementTab:Slider({
Title = "Глубина",
Desc = "It makes you an undergrounder btw",
Value = {
Min = 2,
Max = 30,
Default = 8
},
Callback = function(Value)
Settings.UndergroundDepth =
tonumber(Value) or 8
end
})
MovementTab:Slider({
Title = "Скорость",
Desc = "Running speed underground",
Value = {
Min = 16,
Max = 150,
Default = 20
},
Callback = function(Value)
Settings.UndergroundSpeed =
tonumber(Value) or 20
if Settings.Underground then
updateSprint()
end
end
})
MovementTab:Section({
Title = "Respawn"
})
MovementTab:Toggle({
Title = "Quick Respawn",
Desc = "Brings you back to the point where you died (if u have sheid ",
Value = false,
Callback = function(State)
Settings.QuickRespawn = State
end
})
MovementTab:Section({ Title = "Auto Criminal" })
MovementTab:Toggle({
Title = "Auto Criminal",
Desc = "Automatically becomes a criminal",
Value = false,
Callback = function(State)
AutoCriminal.Set(State)
end,
})
--========================================================--
-- COMBAT
--========================================================--
CombatTab:Section({
Title = "Hitbox Visualizer"
})
CombatTab:Toggle({
Title = "Hitbox",
Desc = "Increases the player’s head size so that it’s easier to deal critical damage (Silent Aim btw)",
Value = false,
Callback = function(State)
Settings.Hitbox = State
if State then
for _, Player in ipairs(Players:GetPlayers()) do
if Player ~= LocalPlayer and isAlive(Player) then
createHitbox(Player)
end
end
else
for Player in pairs(HitboxObjects) do
removeHitbox(Player)
end
end
end,
})
CombatTab:Slider({
Title = "Hitbox Size",
Desc = "Increase the hitbox of players’ heads (Visual)",
Value = { Min = 2, Max = 10, Default = 6 },
Callback = function(Value)
Settings.HitboxSize = tonumber(Value) or 6
if Settings.Hitbox then
for _, Player in ipairs(Players:GetPlayers()) do
if Player ~= LocalPlayer and isAlive(Player) then
createHitbox(Player)
end
end
end
end,
})
CombatTab:Section({ Title = "Anti-Fling" })
CombatTab:Toggle({
Title = "Anti-Fling",
Desc = "It prevents you from flying off the map and stops the anti‑cheat from kicking you. Fucking FFling!",
Value = false,
Callback = function(State)
AntiFling.Set(State)
end,
})
CombatTab:Section({
Title = "Rage"
})
CombatTab:Toggle({
Title = "Rapid Fire",
Desc = "Reduces the FireRate of the weapon when equipped (requires taking the weapon twice to use)",
Value = false,
Callback = function(State)
Settings.RapidFire = State
if State and LocalPlayer.Character then
for _, child in ipairs(LocalPlayer.Character:GetChildren()) do
if child:IsA("Tool") then patchTool(child) end
end
end
end
})
CombatTab:Slider({
Title = "Fire Rate",
Desc = "Increases the firing speed",
Value = { Min = 0.01, Max = 0.5, Default = 0.05 },
Callback = function(Value)
Settings.FireRate = tonumber(Value) or 0.05
if Settings.RapidFire and LocalPlayer.Character then
for _, child in ipairs(LocalPlayer.Character:GetChildren()) do
if child:IsA("Tool") then patchTool(child) end
end
end
end
})
CombatTab:Toggle({
Title = "Tase Bypass",
Desc = "Bypass Taser",
Value = false,
Callback = function(State)
TaseBypass.Set(State)
end,
})
--========================================================--
-- VISUALS
--========================================================--
VisualsTab:Section({
Title = "XRAY"
})
VisualsTab:Toggle({
Title = "ESP",
Desc = "Shows players through walls",
Value = false,
Callback = function(State)
Settings.ESP = State
if not State then
for Player in pairs(ESPObjects) do
removeESP(Player)
end
end
end
})
VisualsTab:Toggle({
Title = "Team Colors",
Desc = "The ESP color depends on the command",
Value = true,
Callback = function(State)
Settings.TeamColors =
State
end
})
VisualsTab:Toggle({
Title = "Highlight",
Desc = "Player highlighting",
Value = true,
Callback = function(State)
Settings.Highlight =
State
if Settings.ESP then
for Player in ipairs(Players:GetPlayers()) do
if Player ~= LocalPlayer then
createESP(Player)
end
end
end
end
})
VisualsTab:Section({ Title = "Custom Weapon" })
VisualsTab:Toggle({
Title = "Custom Weapon Visual",
Desc = "Replaces the weapon model with a custom one",
Value = false,
Callback = function(State)
CustomWeapon.Set(State)
end,
})
VisualsTab:Section({ Title = "Damage Visible" })
VisualsTab:Toggle({
Title = "Damage Visible",
Desc = "Shows the damage dealt to the player",
Value = false,
Callback = function(State)
DamageNumbers.Set(State)
end,
})
VisualsTab:Section({ Title = "Custom Weapon" })
VisualsTab:Toggle({
Title = "Custom Weapon Visual",
Desc = "Replaces the weapon model with a custom one (Visual)",
Value = false,
Callback = function(State)
CustomWeapon.Set(State)
end,
})
VisualsTab:Section({
Title = "World"
})
VisualsTab:Toggle({
Title = "Fullbright",
Desc = "It removes darkness, fog, and shadows",
Value = false,
Callback = function(State)
Settings.Fullbright =
State
updateFullbright()
end
})
VisualsTab:Section({ Title = "Invisible" })
VisualsTab:Toggle({
Title = "Invisible (FE)",
Desc = "Invisibility",
Value = false,
Callback = function(State)
FEInvisible.Set(State)
end,
})
VisualsTab:Section({ Title = "Anti-Invis" })
VisualsTab:Toggle({
Title = "Anti-Invis",
Desc = "It tries to make invisible players visible so they can be killed.",
Value = false,
Callback = function(State)
AntiInvis.Set(State)
end,
})
--========================================================--
-- SETTINGS
--========================================================--
SettingsTab:Section({ Title = "Killfeed" })
SettingsTab:Toggle({
Title = "Killfeed Notifications",
Desc = "Shows notifications about who killed whom.",
Value = true,
Callback = function(State)
KillfeedNotify = State
end
})
SettingsTab:Section({
Title = "Interface"
})
SettingsTab:Toggle({
Title = "Closest Player Tracker",
Desc = "Displays the selected closest target",
Value = true,
Callback = function(State)
Settings.ClosestTracker =
State
TrackerLabel.Visible =
State
end
})
SettingsTab:Button({
Title = "Reset Lighting",
Callback = function()
Settings.Fullbright = false
disableFullbright()
end
})
SettingsTab:Button({
Title = "Unload Nightfall",
Callback = function()
Settings.ESP = false
Settings.Hitbox = false
Settings.RapidFire = false
Settings.AntiJump = false
Settings.AutoSprint = false
if Settings.Underground then
setUnderground(false)
end
pcall(function() FEInvisible.Set(false) end)
pcall(function()
if TaseBypass then TaseBypass.Set(false) end
end)
pcall(function() AutoCriminal.Set(false) end)
pcall(function() DamageNumbers.Set(false) end)
pcall(function() CustomWeapon.Set(false) end)
disableFullbright()
pcall(function()
local StarterScripts = game:GetService("StarterPlayer"):FindFirstChild("StarterCharacterScripts")
if StarterScripts then
local AntiJump = StarterScripts:FindFirstChild("AntiJump")
if AntiJump then AntiJump.Disabled = false end
end
local char = LocalPlayer.Character
if char then
local activeAJ = char:FindFirstChild("AntiJump")
if activeAJ then activeAJ.Disabled = false end
end
end)
for Player in pairs(ESPObjects) do
removeESP(Player)
end
for Player in pairs(HitboxObjects) do
removeHitbox(Player)
end
if TrackerGui then
TrackerGui:Destroy()
end
if CharacterTrackConnection then
CharacterTrackConnection:Disconnect()
CharacterTrackConnection = nil
end
if DeathConnection then
DeathConnection:Disconnect()
DeathConnection = nil
end
if UndergroundConnection then
UndergroundConnection:Disconnect()
UndergroundConnection = nil
end
UndergroundSavedCFrame = nil
print("[Nightfall] All functions unloaded.")
end
})
--========================================================--
-- INITIALIZATION
--========================================================--
task.spawn(function()
task.wait(1)
updateFullbright()
updateJump()
updateSprint()
if Settings.ESP then
updateESP()
end
if Settings.Hitbox then
updateHitboxes()
end
end)
print("[Nightfall] Loaded.")Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com.
Features
- 1. Visuals:
- ESP
- Team Colors
- Highlight
- Fullbright
- Invisible
- Anti-Invis
- Damage Visible
- Custom Weapon Visual
- Closest Player Tracker
- 2. Combat & Rage:
- Hitbox Hat
- Rapid Fire
- Tase Bypass
- Anti-Fling
- Auto Criminal
- 3. Movement:
- AutoSprint
- Anti-Jump
- Underground
- Quick Respawn
- Click Teleport
- 4. Utility & Interface:
- Killfeed Notifications
- Unload Script
- Reset Lighting
More for Prison Life

Ez Hub [Open Source] [150+ games]
Universal
4.5M4 years ago
Keyless Verified

Snowy Hub 500+ Games & 25600+ Features
Universal
1.6M4 months ago
Key Verified

Troll GUI, Including Admin, & GunMods
Prison Life
923K4 years ago
Keyless Verified

[QUAIL] Best Universal Aimbot ESP 90+ Features
Universal
2.8M6 months ago
Key