41 21 No KeyHUSH: They can hear Script (Delta Mobile) – Mono Neon V8: Monster ESP, Auto Hotwire
HUSH: They can hear. · RobloxDescription
HUSH Mono Neon V8 is a HUSH: They can hear. script you can run in Delta on Android, iOS or PC. It includes monster esp, eye esp, player esp and more. The menu labels are in Russian (ESP монстров = monster ESP, Автоугон = auto hotwire). Created by matveiyga. No key.
Key Features
- Monster ESP
- Eye ESP
- Player ESP
- Mother ESP
- Tracer lines to monsters
- Noise indicator
- Fullbright
- No Fog
- Auto Hotwire (F7)
- Car speed boost
- Car noclip
- RightShift to hide or show the menu
In HUSH: They can hear., noise kills runs. The monsters that took over the town hunt by sound, and getting caught costs you everything you were carrying. The HUSH Mono Neon script (V8, by matveiyga) gives you eyes on every threat and takes the nerve-wracking hotwire mini-game off your hands.
What the panel shows
The window is titled “HUSH / MONO NEON”, and every label in it is Russian. Here’s what the switches mean:
| Label | Meaning |
|---|---|
| ESP монстров / ESP глазиков | Monster ESP / eye ESP |
| ESP игроков / ESP Матери | Player ESP / Mother ESP |
| Линии к монстрам | Tracer lines to monsters |
| Fullbright, No Fog | Lighting tweaks (these two are in English) |
| Автоугон [F7] | Auto hotwire |
| Ускорение машины / Предел буста | Car speed boost / boost limit |
| Ноуклип машины | Car noclip |
A live line counts players, monsters and eyes, and a separate “Шум” (noise) readout shows the game’s noise indicator once the script finds it. The Mother line reads “найдена” when that model is located.
Running it
No key gate, no web fetches: the entire script is the long Lua block on this page, and Delta just needs to execute it. If you ran an older Mono or Neon build earlier, V8 cleans those up first. RightShift hides the window and F7 flips auto hotwire. On a phone, tap the buttons in the panel instead. The ВЫКЛЮЧИТЬ СКРИПТ button, in red text, switches everything off. Other executors on the tested row: Fluxus, Arceus X, Codex and unnamed PC ones.
Hotwire and car notes
Auto hotwire only acts while the “Горячая проводка” mini-game is open. It waits for the needle to enter the yellow sector and presses Space through VirtualInputManager. If your executor lacks that, the status line says so. The boost needs you behind the wheel (the panel prompts “сядь за руль”), and the script itself warns that car noclip can drop the vehicle through the road.
FAQ
Is there another HUSH script here? Yes, s0ftkillz has one on the same game page. This is the no-key, open-source option.
Can I change keybinds? Only by editing the code. RightShift and F7 are hard-set near the top.
Stealth tip: keep an eye on the Шум readout while you loot. A loud action next to a monster your ESP is already tracing is exactly how the game punishes you, so wait for the meter to drop before breaking into the next house.
--[[
HUSH MONO NEON V8 + AUTO HOTWIRE
RightShift — скрыть / показать меню
F7 — включить / выключить автоугон
Автоугон работает, когда открыта мини-игра
«Горячая проводка».
]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local Lighting = game:GetService("Lighting")
local Workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local env = getgenv and getgenv() or _G
-- Выключение предыдущих версий и отдельного автоугона
for _, key in ipairs({
"HushNeonCleanup",
"HushNeonV2Cleanup",
"HushNeonV3Cleanup",
"HushNeonV4Cleanup",
"HushNeonV5Cleanup",
"HushMonoV6Cleanup",
"HushMonoV7Cleanup",
"HushMonoV8Cleanup",
"HushCarTestCleanup",
"HushCarBoostCleanup",
"HushCarBoostV2Cleanup",
"HushQuietTestCleanup",
"HushHotwireCleanup"
}) do
if type(env[key]) == "function" then
local ok, err = pcall(env[key])
if not ok then
warn("[HUSH] Ошибка очистки " .. key .. ": " .. tostring(err))
end
env[key] = nil
end
end
for _, name in ipairs({"HushMonoV8", "HushAutoHotwire"}) do
local previous = playerGui:FindFirstChild(name)
if previous then
previous:Destroy()
end
end
local alive = true
local connections = {}
local settings = {
monsterESP = true,
watcherESP = true,
playerESP = true,
motherESP = true,
monsterLines = true,
fullbright = true,
noFog = true,
carBoost = false,
carNoclip = false,
carAcceleration = 10,
carSpeedLimit = 120,
autoHotwire = false,
range = 700,
maxMonsters = 5
}
local colors = {
background = Color3.fromRGB(10, 10, 12),
panel = Color3.fromRGB(20, 20, 23),
button = Color3.fromRGB(32, 32, 36),
hover = Color3.fromRGB(52, 52, 57),
white = Color3.fromRGB(245, 245, 245),
muted = Color3.fromRGB(165, 165, 170),
red = Color3.fromRGB(255, 145, 145),
monster = Color3.fromRGB(235, 235, 235),
nearest = Color3.fromRGB(255, 175, 175),
watcher = Color3.fromRGB(160, 225, 255),
player = Color3.fromRGB(175, 255, 195),
mother = Color3.fromRGB(255, 85, 85)
}
local function connect(signal, callback)
local connection = signal:Connect(callback)
table.insert(connections, connection)
return connection
end
local function corner(parent, radius)
local item = Instance.new("UICorner")
item.CornerRadius = UDim.new(0, radius or 8)
item.Parent = parent
end
local function stroke(parent, color, transparency)
local item = Instance.new("UIStroke")
item.Color = color
item.Transparency = transparency or 0
item.Thickness = 1
item.Parent = parent
end
-- ==========================================
-- FULLBRIGHT И NO FOG
-- ==========================================
local brightValues = {
Ambient = Color3.fromRGB(180, 180, 180),
OutdoorAmbient = Color3.fromRGB(180, 180, 180),
Brightness = 2,
ClockTime = 14,
GlobalShadows = false,
ExposureCompensation = 0
}
local fogValues = {
FogStart = 0,
FogEnd = 100000
}
local savedBright = {}
local savedFog = {}
local savedEffects = {}
local savedAtmospheres = {}
local function saveProperties(values, destination)
table.clear(destination)
for property in pairs(values) do
local ok, value = pcall(function()
return Lighting[property]
end)
if ok then
destination[property] = value
end
end
end
local function setProperties(values)
for property, value in pairs(values) do
pcall(function()
if Lighting[property] ~= value then
Lighting[property] = value
end
end)
end
end
local function restoreProperties(saved)
for property, value in pairs(saved) do
pcall(function()
Lighting[property] = value
end)
end
table.clear(saved)
end
local function disableEffect(object)
if not object:IsA("PostEffect") then
return
end
if savedEffects[object] == nil then
savedEffects[object] = object.Enabled
end
pcall(function()
object.Enabled = false
end)
end
local function clearAtmosphere(object)
if not object:IsA("Atmosphere") then
return
end
if not savedAtmospheres[object] then
savedAtmospheres[object] = {
Density = object.Density,
Haze = object.Haze,
Glare = object.Glare
}
end
pcall(function()
object.Density = 0
object.Haze = 0
object.Glare = 0
end)
end
local function restoreEffects()
for object, enabled in pairs(savedEffects) do
pcall(function()
if object.Parent then
object.Enabled = enabled
end
end)
end
table.clear(savedEffects)
end
local function restoreAtmospheres()
for object, saved in pairs(savedAtmospheres) do
pcall(function()
if object.Parent then
object.Density = saved.Density
object.Haze = saved.Haze
object.Glare = saved.Glare
end
end)
end
table.clear(savedAtmospheres)
end
local function inspectLightingObject(object)
if settings.fullbright and object:IsA("PostEffect") then
disableEffect(object)
end
if settings.noFog and object:IsA("Atmosphere") then
clearAtmosphere(object)
end
end
local function inspectLighting()
for _, object in ipairs(Lighting:GetDescendants()) do
inspectLightingObject(object)
end
local camera = Workspace.CurrentCamera
if camera then
for _, object in ipairs(camera:GetDescendants()) do
inspectLightingObject(object)
end
end
end
local function applyLighting()
if settings.fullbright then
setProperties(brightValues)
for object in pairs(savedEffects) do
pcall(function()
if object.Parent then
object.Enabled = false
end
end)
end
end
if settings.noFog then
setProperties(fogValues)
for object in pairs(savedAtmospheres) do
pcall(function()
if object.Parent then
object.Density = 0
object.Haze = 0
object.Glare = 0
end
end)
end
end
end
local function setFullbright(enabled)
if settings.fullbright == enabled then
return
end
settings.fullbright = enabled
if enabled then
saveProperties(brightValues, savedBright)
inspectLighting()
applyLighting()
else
restoreProperties(savedBright)
restoreEffects()
end
end
local function setNoFog(enabled)
if settings.noFog == enabled then
return
end
settings.noFog = enabled
if enabled then
saveProperties(fogValues, savedFog)
inspectLighting()
applyLighting()
else
restoreProperties(savedFog)
restoreAtmospheres()
end
end
saveProperties(brightValues, savedBright)
saveProperties(fogValues, savedFog)
inspectLighting()
applyLighting()
connect(Lighting.DescendantAdded, function(object)
if alive then
inspectLightingObject(object)
end
end)
-- ==========================================
-- GUI
-- ==========================================
local screen = Instance.new("ScreenGui")
screen.Name = "HushMonoV8"
screen.ResetOnSpawn = false
screen.IgnoreGuiInset = true
screen.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screen.Parent = playerGui
local linesFolder = Instance.new("Folder")
linesFolder.Name = "Lines"
linesFolder.Parent = screen
local main = Instance.new("Frame")
main.Name = "Main"
main.Size = UDim2.fromOffset(330, 510)
main.Position = UDim2.new(0, 35, 0.5, -255)
main.BackgroundColor3 = colors.background
main.BorderSizePixel = 0
main.ClipsDescendants = true
main.Parent = screen
corner(main, 14)
stroke(main, colors.white, 0.28)
local header = Instance.new("Frame")
header.Size = UDim2.new(1, 0, 0, 58)
header.BackgroundColor3 = colors.panel
header.BorderSizePixel = 0
header.Active = true
header.Parent = main
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -24, 0, 25)
title.Position = UDim2.fromOffset(12, 5)
title.BackgroundTransparency = 1
title.Text = "HUSH / MONO NEON"
title.TextColor3 = colors.white
title.TextSize = 16
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = header
local subtitle = Instance.new("TextLabel")
subtitle.Size = UDim2.new(1, -24, 0, 18)
subtitle.Position = UDim2.fromOffset(12, 30)
subtitle.BackgroundTransparency = 1
subtitle.Text = "V8 + AUTO HOTWIRE • RightShift"
subtitle.TextColor3 = colors.muted
subtitle.TextSize = 11
subtitle.Font = Enum.Font.Gotham
subtitle.TextXAlignment = Enum.TextXAlignment.Left
subtitle.Parent = header
local scroll = Instance.new("ScrollingFrame")
scroll.Name = "Content"
scroll.Position = UDim2.fromOffset(10, 65)
scroll.Size = UDim2.new(1, -20, 1, -75)
scroll.BackgroundTransparency = 1
scroll.BorderSizePixel = 0
scroll.ScrollBarThickness = 3
scroll.ScrollBarImageColor3 = colors.white
scroll.CanvasSize = UDim2.fromOffset(0, 0)
scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
scroll.Parent = main
local layout = Instance.new("UIListLayout")
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Padding = UDim.new(0, 6)
layout.Parent = scroll
local padding = Instance.new("UIPadding")
padding.PaddingRight = UDim.new(0, 5)
padding.PaddingBottom = UDim.new(0, 8)
padding.Parent = scroll
local order = 0
local function nextOrder()
order += 1
return order
end
local function makeLabel(text, height, color)
local label = Instance.new("TextLabel")
label.LayoutOrder = nextOrder()
label.Size = UDim2.new(1, 0, 0, height or 26)
label.BackgroundColor3 = colors.panel
label.BorderSizePixel = 0
label.Text = text
label.TextColor3 = color or colors.white
label.TextSize = 12
label.Font = Enum.Font.GothamMedium
label.Parent = scroll
corner(label, 7)
return label
end
local function makeButton(text, callback)
local button = Instance.new("TextButton")
button.LayoutOrder = nextOrder()
button.Size = UDim2.new(1, 0, 0, 30)
button.BackgroundColor3 = colors.button
button.BorderSizePixel = 0
button.Text = text
button.TextColor3 = colors.white
button.TextSize = 12
button.Font = Enum.Font.GothamMedium
button.AutoButtonColor = false
button.Parent = scroll
corner(button, 7)
connect(button.MouseEnter, function()
button.BackgroundColor3 = colors.hover
end)
connect(button.MouseLeave, function()
button.BackgroundColor3 = colors.button
end)
connect(button.MouseButton1Click, function()
if alive then
callback(button)
end
end)
return button
end
local function toggleText(name, enabled)
return name .. ": " .. (enabled and "ВКЛ" or "ВЫКЛ")
end
local noiseLabel = makeLabel("Шум: поиск индикатора...", 28)
local statusLabel = makeLabel("Игроки: 0 | Монстры: 0 | Глаза: 0", 26, colors.muted)
local motherStatus = makeLabel("Мать: поиск...", 26, colors.muted)
makeButton(toggleText("ESP монстров", settings.monsterESP), function(button)
settings.monsterESP = not settings.monsterESP
button.Text = toggleText("ESP монстров", settings.monsterESP)
end)
makeButton(toggleText("ESP глазиков", settings.watcherESP), function(button)
settings.watcherESP = not settings.watcherESP
button.Text = toggleText("ESP глазиков", settings.watcherESP)
end)
makeButton(toggleText("ESP игроков", settings.playerESP), function(button)
settings.playerESP = not settings.playerESP
button.Text = toggleText("ESP игроков", settings.playerESP)
end)
makeButton(toggleText("ESP Матери", settings.motherESP), function(button)
settings.motherESP = not settings.motherESP
button.Text = toggleText("ESP Матери", settings.motherESP)
end)
makeButton(toggleText("Линии к монстрам", settings.monsterLines), function(button)
settings.monsterLines = not settings.monsterLines
button.Text = toggleText("Линии к монстрам", settings.monsterLines)
end)
makeButton(toggleText("Fullbright", settings.fullbright), function(button)
setFullbright(not settings.fullbright)
button.Text = toggleText("Fullbright", settings.fullbright)
end)
makeButton(toggleText("No Fog", settings.noFog), function(button)
setNoFog(not settings.noFog)
button.Text = toggleText("No Fog", settings.noFog)
end)
local hotwireSection = makeLabel("── AUTO HOTWIRE ──", 24, colors.muted)
hotwireSection.TextSize = 11
local hotwireButton
local hotwireStatus = makeLabel("Автоугон: выключен", 26, colors.muted)
hotwireStatus.TextSize = 11
local previousHotwireAngle = nil
local lastHotwirePress = 0
local okVim, vim = pcall(function()
return game:GetService("VirtualInputManager")
end)
local function setAutoHotwire(enabled)
settings.autoHotwire = enabled
previousHotwireAngle = nil
if hotwireButton then
hotwireButton.Text = toggleText("Автоугон [F7]", enabled)
end
if not enabled then
hotwireStatus.Text = "Автоугон: выключен"
elseif not okVim or not vim then
hotwireStatus.Text = "Автоугон: VirtualInputManager недоступен"
else
hotwireStatus.Text = "Автоугон: ожидание мини-игры"
end
end
hotwireButton = makeButton(
toggleText("Автоугон [F7]", settings.autoHotwire),
function()
setAutoHotwire(not settings.autoHotwire)
end
)
local section = makeLabel("── CAR BOOST ──", 24, colors.muted)
section.TextSize = 11
local carStatus = makeLabel("Авто: сядь за руль", 26, colors.muted)
carStatus.TextSize = 11
makeButton(toggleText("Ускорение машины", settings.carBoost), function(button)
settings.carBoost = not settings.carBoost
button.Text = toggleText("Ускорение машины", settings.carBoost)
end)
makeButton(toggleText("Ноуклип машины", settings.carNoclip), function(button)
settings.carNoclip = not settings.carNoclip
button.Text = toggleText("Ноуклип машины", settings.carNoclip)
end)
local function makeAdjuster(titleText, getValue, setValue, step, minimum, maximum, suffix)
local row = Instance.new("Frame")
row.LayoutOrder = nextOrder()
row.Size = UDim2.new(1, 0, 0, 30)
row.BackgroundTransparency = 1
row.Parent = scroll
local function sideButton(text, position)
local button = Instance.new("TextButton")
button.Size = UDim2.fromOffset(38, 30)
button.Position = position
button.BackgroundColor3 = colors.button
button.BorderSizePixel = 0
button.Text = text
button.TextColor3 = colors.white
button.TextSize = 16
button.Font = Enum.Font.GothamBold
button.Parent = row
corner(button, 7)
return button
end
local minus = sideButton("−", UDim2.fromOffset(0, 0))
local plus = sideButton("+", UDim2.new(1, -38, 0, 0))
local label = Instance.new("TextLabel")
label.Position = UDim2.fromOffset(44, 0)
label.Size = UDim2.new(1, -88, 1, 0)
label.BackgroundColor3 = colors.panel
label.BorderSizePixel = 0
label.TextColor3 = colors.white
label.TextSize = 11
label.Font = Enum.Font.GothamMedium
label.Parent = row
corner(label, 7)
local function refresh()
label.Text = titleText .. ": " .. getValue() .. (suffix or "")
end
connect(minus.MouseButton1Click, function()
setValue(math.clamp(getValue() - step, minimum, maximum))
refresh()
end)
connect(plus.MouseButton1Click, function()
setValue(math.clamp(getValue() + step, minimum, maximum))
refresh()
end)
refresh()
end
makeAdjuster(
"Ускорение",
function() return settings.carAcceleration end,
function(value) settings.carAcceleration = value end,
5, 0, 55, ""
)
makeAdjuster(
"Предел буста",
function() return settings.carSpeedLimit end,
function(value) settings.carSpeedLimit = value end,
5, 50, 135, " studs/с"
)
local hint = makeLabel("Ноуклип может провалить авто сквозь дорогу", 26, colors.red)
hint.TextSize = 10
local cleanup
local stopButton = makeButton("ВЫКЛЮЧИТЬ СКРИПТ", function()
cleanup()
end)
stopButton.TextColor3 = colors.red
-- Перетаскивание
local dragging = false
local dragInput
local dragStart
local startPosition
connect(header.InputBegan, function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragInput = input
dragStart = input.Position
startPosition = main.Position
end
end)
connect(header.InputChanged, function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
dragInput = input
end
end)
connect(UIS.InputChanged, function(input)
if dragging and input == dragInput and dragStart and startPosition then
local delta = input.Position - dragStart
main.Position = UDim2.new(
startPosition.X.Scale,
startPosition.X.Offset + delta.X,
startPosition.Y.Scale,
startPosition.Y.Offset + delta.Y
)
end
end)
connect(UIS.InputEnded, function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
connect(UIS.InputBegan, function(input, processed)
if processed or UIS:GetFocusedTextBox() then
return
end
if input.KeyCode == Enum.KeyCode.RightShift then
main.Visible = not main.Visible
elseif input.KeyCode == Enum.KeyCode.F7 then
setAutoHotwire(not settings.autoHotwire)
end
end)
-- ==========================================
-- АВТОУГОН
-- ==========================================
local function signedDifference(a, b)
return (a - b + 180) % 360 - 180
end
local function getYellowCenter(zone)
local x, y, count = 0, 0, 0
for _, segment in ipairs(zone:GetChildren()) do
if segment:IsA("GuiObject") and segment.Visible then
for _, inner in ipairs(segment:GetChildren()) do
if inner:IsA("GuiObject") and inner.Visible then
local color = inner.BackgroundColor3
if color.R > 0.85
and color.G > 0.55
and color.G < 0.88
and color.B < 0.5 then
local angle = math.rad(segment.Rotation + zone.Rotation)
x += math.cos(angle)
y += math.sin(angle)
count += 1
break
end
end
end
end
end
if count == 0 then
return nil
end
return math.deg(math.atan2(y, x)) % 360
end
local function pressHotwireSpace()
if not okVim or not vim then
setAutoHotwire(false)
hotwireStatus.Text = "Автоугон: VirtualInputManager недоступен"
return
end
local success, err = pcall(function()
vim:SendKeyEvent(true, Enum.KeyCode.Space, false, game)
end)
if not success then
setAutoHotwire(false)
hotwireStatus.Text = "Автоугон: ошибка ввода, смотри консоль"
warn("[HUSH] Ошибка автоугона:", err)
return
end
task.delay(0.04, function()
pcall(function()
vim:SendKeyEvent(false, Enum.KeyCode.Space, false, game)
end)
end)
hotwireStatus.Text = "Автоугон: пробел отправлен"
end
local function updateHotwire()
if not settings.autoHotwire then
return
end
if UIS:GetFocusedTextBox() then
previousHotwireAngle = nil
hotwireStatus.Text = "Автоугон: пауза, открыт ввод текста"
return
end
local hotwire = playerGui:FindFirstChild("HotwireGui")
local holder = hotwire and hotwire:FindFirstChild("Holder")
local dial = holder and holder:FindFirstChild("Dial")
local needle = dial and dial:FindFirstChild("Needle")
local zone = dial and dial:FindFirstChild("Zone")
if not hotwire or not hotwire.Enabled
or not holder or not holder.Visible
or not dial or not dial.Visible
or not needle or not needle.Visible
or not zone or not zone.Visible then
previousHotwireAngle = nil
hotwireStatus.Text = "Автоугон: ожидание мини-игры"
return
end
local target = getYellowCenter(zone)
if not target then
previousHotwireAngle = nil
hotwireStatus.Text = "Автоугон: жёлтый сектор не найден"
return
end
local angle = needle.Rotation % 360
local difference = signedDifference(angle, target)
local shouldPress = math.abs(difference) <= 3
if previousHotwireAngle then
local movement = signedDifference(angle, previousHotwireAngle)
local fromPreviousToTarget = signedDifference(target, previousHotwireAngle)
if math.abs(movement) < 60
and movement ~= 0
and fromPreviousToTarget * movement > 0
and math.abs(fromPreviousToTarget) <= math.abs(movement) then
shouldPress = true
end
end
previousHotwireAngle = angle
if shouldPress and os.clock() - lastHotwirePress >= 1 then
lastHotwirePress = os.clock()
pressHotwireSpace()
elseif os.clock() - lastHotwirePress >= 1 then
hotwireStatus.Text = "Автоугон: ожидание стрелки"
end
end
-- ==========================================
-- ESP
-- ==========================================
local monsterVisuals = {}
local watcherVisuals = {}
local playerVisuals = {}
local motherVisuals = {}
local function getRoot(model)
if not model or not model:IsA("Model") then
return nil
end
local root = model:FindFirstChild("HumanoidRootPart")
or model:FindFirstChild("Core")
or model.PrimaryPart
or model:FindFirstChildWhichIsA("BasePart", true)
if root and root:IsA("BasePart") then
return root
end
return nil
end
local function destroyVisual(visual)
if not visual then return end
if visual.highlight then visual.highlight:Destroy() end
if visual.billboard then visual.billboard:Destroy() end
if visual.line then visual.line:Destroy() end
end
local function makeVisual(model, root, color, withLine, maxDistance)
local highlight = Instance.new("Highlight")
highlight.Name = "HushHighlight"
highlight.Adornee = model
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
highlight.FillColor = color
highlight.FillTransparency = 0.75
highlight.OutlineColor = color
highlight.OutlineTransparency = 0
highlight.Parent = screen
local billboard = Instance.new("BillboardGui")
billboard.Name = "HushBillboard"
billboard.Adornee = root
billboard.Size = UDim2.fromOffset(180, 42)
billboard.StudsOffset = Vector3.new(0, 3, 0)
billboard.AlwaysOnTop = true
billboard.MaxDistance = maxDistance or settings.range
billboard.Parent = screen
local label = Instance.new("TextLabel")
label.Size = UDim2.fromScale(1, 1)
label.BackgroundTransparency = 1
label.TextColor3 = color
label.TextStrokeColor3 = Color3.new(0, 0, 0)
label.TextStrokeTransparency = 0
label.TextSize = 13
label.Font = Enum.Font.GothamBold
label.TextWrapped = true
label.Parent = billboard
local line
if withLine then
line = Instance.new("Frame")
line.Name = "TrackerLine"
line.AnchorPoint = Vector2.new(0.5, 0.5)
line.BorderSizePixel = 0
line.BackgroundColor3 = color
line.Visible = false
line.Parent = linesFolder
end
return {
model = model,
root = root,
highlight = highlight,
billboard = billboard,
label = label,
line = line
}
end
local function ensureVisual(collection, key, model, root, color, withLine, maxDistance)
local visual = collection[key]
if visual and (visual.model ~= model or visual.root ~= root) then
destroyVisual(visual)
collection[key] = nil
visual = nil
end
if not visual then
visual = makeVisual(model, root, color, withLine, maxDistance)
collection[key] = visual
end
visual.highlight.FillColor = color
visual.highlight.OutlineColor = color
visual.label.TextColor3 = color
if visual.line then
visual.line.BackgroundColor3 = color
end
return visual
end
local function removeMissing(collection, wanted)
for key, visual in pairs(collection) do
if not wanted[key] then
destroyVisual(visual)
collection[key] = nil
end
end
end
local function updatePlayers(myRoot)
local wanted = {}
local count = 0
if settings.playerESP and myRoot then
for _, other in ipairs(Players:GetPlayers()) do
if other ~= player then
local character = other.Character
local root = getRoot(character)
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
if character and root and (not humanoid or humanoid.Health > 0) then
local distance = (root.Position - myRoot.Position).Magnitude
if distance <= settings.range then
wanted[other] = true
count += 1
local visual = ensureVisual(
playerVisuals, other, character, root,
colors.player, false
)
visual.label.Text = other.DisplayName
.. "\n" .. math.floor(distance) .. " studs"
end
end
end
end
end
removeMissing(playerVisuals, wanted)
return count
end
local function updateMonsters(myRoot)
local wanted = {}
local candidates = {}
local folder = Workspace:FindFirstChild("Monsters")
if settings.monsterESP and folder and myRoot then
for _, model in ipairs(folder:GetChildren()) do
if model:IsA("Model") then
local root = getRoot(model)
local humanoid = model:FindFirstChildOfClass("Humanoid")
if root and (not humanoid or humanoid.Health > 0) then
local distance = (root.Position - myRoot.Position).Magnitude
if distance <= settings.range then
table.insert(candidates, {
model = model,
root = root,
distance = distance
})
end
end
end
end
table.sort(candidates, function(a, b)
return a.distance < b.distance
end)
for i = 1, math.min(settings.maxMonsters, #candidates) do
local item = candidates[i]
local color = i == 1 and colors.nearest or colors.monster
wanted[item.model] = true
local visual = ensureVisual(
monsterVisuals, item.model, item.model, item.root,
color, true
)
visual.label.Text = item.model.Name
.. "\n" .. math.floor(item.distance) .. " studs"
end
end
removeMissing(monsterVisuals, wanted)
return math.min(#candidates, settings.maxMonsters)
end
local function updateWatchers(myRoot)
local wanted = {}
local count = 0
local folder = Workspace:FindFirstChild("Watchers")
if settings.watcherESP and folder and myRoot then
for _, model in ipairs(folder:GetChildren()) do
if model:IsA("Model") then
local root = model:FindFirstChild("Core") or getRoot(model)
if root and root:IsA("BasePart") then
local distance = (root.Position - myRoot.Position).Magnitude
if distance <= settings.range then
wanted[model] = true
count += 1
local visual = ensureVisual(
watcherVisuals, model, model, root,
colors.watcher, false
)
visual.label.Text = "ГЛАЗИК"
.. "\n" .. math.floor(distance) .. " studs"
end
end
end
end
end
removeMissing(watcherVisuals, wanted)
return count
end
local function updateMother(myRoot)
local wanted = {}
local model = Workspace:FindFirstChild("Mother")
if not settings.motherESP then
motherStatus.Text = "Мать: ESP выключен"
elseif not model or not model:IsA("Model") then
motherStatus.Text = "Мать: модель не найдена"
else
local root = getRoot(model)
if not root then
motherStatus.Text = "Мать: модель есть, деталь не найдена"
else
wanted[model] = true
local visual = ensureVisual(
motherVisuals, model, model, root,
colors.mother, false, 100000
)
if myRoot then
local distance = (root.Position - myRoot.Position).Magnitude
visual.label.Text = "МАТЬ\n" .. math.floor(distance) .. " studs"
motherStatus.Text = "Мать: " .. math.floor(distance) .. " studs"
else
visual.label.Text = "МАТЬ"
motherStatus.Text = "Мать: найдена"
end
end
end
removeMissing(motherVisuals, wanted)
end
local function updateLines()
local camera = Workspace.CurrentCamera
for _, visual in pairs(monsterVisuals) do
local line = visual.line
if line then
line.Visible = false
if settings.monsterESP
and settings.monsterLines
and camera
and visual.root
and visual.root.Parent then
local point, onScreen = camera:WorldToViewportPoint(
visual.root.Position
)
if onScreen and point.Z > 0 then
local viewport = camera.ViewportSize
local startPoint = Vector2.new(viewport.X / 2, viewport.Y - 20)
local targetPoint = Vector2.new(point.X, point.Y)
local delta = targetPoint - startPoint
local midpoint = (startPoint + targetPoint) / 2
line.Size = UDim2.fromOffset(delta.Magnitude, 2)
line.Position = UDim2.fromOffset(midpoint.X, midpoint.Y)
line.Rotation = math.deg(math.atan2(delta.Y, delta.X))
line.Visible = true
end
end
end
end
end
local function updateNoise()
local hud = playerGui:FindFirstChild("HudGui")
local sway = hud and hud:FindFirstChild("Sway")
local noise = sway and sway:FindFirstChild("Noise")
local label = noise and noise:FindFirstChild("TextLabel")
if label and label:IsA("TextLabel") then
noiseLabel.Text = "Шум: " .. label.Text
else
noiseLabel.Text = "Шум: индикатор не найден"
end
end
-- ==========================================
-- МАШИНА
-- ==========================================
local function getCarParts()
local character = player.Character
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
local seat = humanoid and humanoid.SeatPart
if not seat or seat.Name ~= "DriverSeat" then
return nil
end
local car = seat:FindFirstAncestorOfClass("Model")
if not car then
return nil
end
local body = seat.AssemblyRootPart
if not body or body.Anchored then
return nil
end
return body, seat, car
end
local rayParams = RaycastParams.new()
rayParams.FilterType = Enum.RaycastFilterType.Exclude
local collisionSaved = {}
local collisionCar
local collisionAddedConnection
local function restoreCarCollision()
if collisionAddedConnection then
collisionAddedConnection:Disconnect()
collisionAddedConnection = nil
end
for part, original in pairs(collisionSaved) do
pcall(function()
if part.Parent then
part.CanCollide = original
end
end)
end
table.clear(collisionSaved)
collisionCar = nil
end
local function trackCollisionPart(part)
if not part:IsA("BasePart") then
return
end
if collisionSaved[part] == nil then
collisionSaved[part] = part.CanCollide
end
pcall(function()
part.CanCollide = false
end)
end
local function startCarNoclip(car)
restoreCarCollision()
collisionCar = car
for _, object in ipairs(car:GetDescendants()) do
trackCollisionPart(object)
end
collisionAddedConnection = car.DescendantAdded:Connect(function(object)
if alive and settings.carNoclip and collisionCar == car then
trackCollisionPart(object)
end
end)
end
local function updateCarNoclip(car)
if not settings.carNoclip or not car then
if collisionCar then
restoreCarCollision()
end
return
end
if collisionCar ~= car then
startCarNoclip(car)
end
for part in pairs(collisionSaved) do
pcall(function()
if part.Parent and part.CanCollide then
part.CanCollide = false
end
end)
end
end
-- ==========================================
-- ОБНОВЛЕНИЕ
-- ==========================================
local espElapsed = 0
local lightingScanElapsed = 0
local carStatusElapsed = 0
connect(RunService.Heartbeat, function(dt)
if not alive then return end
local body, seat, car = getCarParts()
updateCarNoclip(car)
local holdingW = UIS:IsKeyDown(Enum.KeyCode.W)
local holdingS = UIS:IsKeyDown(Enum.KeyCode.S)
local typing = UIS:GetFocusedTextBox() ~= nil
if body and seat and car then
local velocity = body.AssemblyLinearVelocity
local horizontal = Vector3.new(velocity.X, 0, velocity.Z)
local speed = horizontal.Magnitude
local upright = seat.CFrame.UpVector:Dot(Vector3.yAxis) > 0.65
local character = player.Character
rayParams.FilterDescendantsInstances = character and {car, character} or {car}
local ground = Workspace:Raycast(
body.Position,
Vector3.new(0, -9, 0),
rayParams
)
local grounded = ground ~= nil
local forward = seat.CFrame.LookVector
local flatForward = Vector3.new(forward.X, 0, forward.Z)
local movingForward = false
if flatForward.Magnitude > 0.01 and speed > 5 then
movingForward = horizontal.Unit:Dot(flatForward.Unit) > 0.2
end
local canBoost =
settings.carBoost
and holdingW
and not holdingS
and not typing
and upright
and grounded
and movingForward
and speed < settings.carSpeedLimit
if canBoost then
local addition = math.min(
settings.carAcceleration * math.min(dt, 0.05),
settings.carSpeedLimit - speed
)
body.AssemblyLinearVelocity = velocity + horizontal.Unit * addition
end
carStatusElapsed += dt
if carStatusElapsed >= 0.2 then
carStatusElapsed = 0
local reason
if not settings.carBoost then
reason = "буст выкл"
elseif not upright then
reason = "переворот"
elseif not grounded then
reason = "нет земли"
elseif typing then
reason = "ввод текста"
elseif not holdingW or holdingS then
reason = "ожидание W"
elseif not movingForward then
reason = "нет движения вперёд"
elseif speed >= settings.carSpeedLimit then
reason = "предел"
else
reason = "буст"
end
carStatus.Text = string.format(
"Авто: %.1f studs/с | %s",
speed,
reason
)
end
else
carStatusElapsed += dt
if carStatusElapsed >= 0.2 then
carStatusElapsed = 0
carStatus.Text = "Авто: сядь за руль"
end
end
espElapsed += dt
if espElapsed >= 0.25 then
espElapsed = 0
local myRoot = getRoot(player.Character)
local playerCount = updatePlayers(myRoot)
local monsterCount = updateMonsters(myRoot)
local watcherCount = updateWatchers(myRoot)
statusLabel.Text = "Игроки: " .. playerCount
.. " | Монстры: " .. monsterCount
.. " | Глаза: " .. watcherCount
updateMother(myRoot)
updateNoise()
end
lightingScanElapsed += dt
if lightingScanElapsed >= 0.5 then
lightingScanElapsed = 0
if settings.fullbright or settings.noFog then
inspectLighting()
end
end
end)
local renderName = "HushMonoV8Lighting"
RunService:UnbindFromRenderStep(renderName)
RunService:BindToRenderStep(
renderName,
Enum.RenderPriority.Last.Value,
function()
if not alive then return end
applyLighting()
updateLines()
updateHotwire()
end
)
-- ==========================================
-- ОЧИСТКА
-- ==========================================
cleanup = function()
if not alive then return end
alive = false
settings.carBoost = false
settings.carNoclip = false
settings.autoHotwire = false
RunService:UnbindFromRenderStep(renderName)
for _, connection in ipairs(connections) do
connection:Disconnect()
end
pcall(function()
if vim then
vim:SendKeyEvent(false, Enum.KeyCode.Space, false, game)
end
end)
restoreCarCollision()
if settings.fullbright then
settings.fullbright = false
restoreProperties(savedBright)
restoreEffects()
end
if settings.noFog then
settings.noFog = false
restoreProperties(savedFog)
restoreAtmospheres()
end
for _, collection in ipairs({
monsterVisuals,
watcherVisuals,
playerVisuals,
motherVisuals
}) do
for _, visual in pairs(collection) do
destroyVisual(visual)
end
table.clear(collection)
end
screen:Destroy()
if env.HushMonoV8Cleanup == cleanup then
env.HushMonoV8Cleanup = nil
end
print("[HUSH V8] Скрипт выключен.")
end
env.HushMonoV8Cleanup = cleanup
print("[HUSH V8] Загружен. RightShift — меню, F7 — автоугон.")


