Description
Nova Simple V5 is a keyless, open-source script for BloxStrike developed by Nova. It focuses on combat-related features, including Auto Fire, Kill All, ESP, Head Expand, and Team Check. The script also includes additional visual options and compensation length settings, with the listing describing compatibility with most executors.
Key Features
- Nova Simple V5 Script
- Keyless Script
- Open Source
- ESP
- Head Expand
- Team Check
- Auto Fire
- Combat Features
- Kill All
- Compensation Length
- Visual Features
- Support for Most Executors (as stated in the listing)
Supported Game
- BloxStrike
Views
6+
Likes
0
Dislikes
0
Posted
2 weeks ago
Updated
2 weeks ago
Key System
No
Mobile
Supported
Script Preview
-- language: Luau, target: Roblox "Blox Strike", executors: Xeno / Delta / Wave / Solara
-- NOVA SIMPLE v5: Kill All + анти-отдача · превью-каталог (drag-вращение, зум) · вкладка Мир удалена
local ENV = (getgenv and getgenv()) or {}
if ENV.NOVASimple and ENV.NOVASimple.Unload then pcall(ENV.NOVASimple.Unload) end
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local HttpService = game:GetService("HttpService")
local VirtualUser = game:GetService("VirtualUser")
local LP = Players.LocalPlayer
--// CONFIG
local CFG = {
TeamCheck = true, TeamRadius = 30,
ESP = true, Highlight = true, HeadBox = true,
Name = true, Health = true, Distance = true, MaxDistance = 2500,
ESPColor = Color3.fromRGB(255, 70, 85),
HeadBoxColor = Color3.fromRGB(255, 215, 60),
HeadExpand = false, HeadSize = 6, HeadTransparency = 0.55,
KillAll = false, FireDelay = 0.15,
NoRecoil = false, RecoilStrength = 100,
Particles = true,
GuiKey = Enum.KeyCode.RightShift,
}
--// THEME
local Theme = {
Accent = Color3.fromRGB(227, 137, 35),
Bg = Color3.fromRGB(13, 13, 19),
Bg2 = Color3.fromRGB(22, 23, 32),
Bg3 = Color3.fromRGB(30, 31, 42),
Stroke = Color3.fromRGB(46, 46, 64),
Text = Color3.fromRGB(236, 236, 246),
TextDim = Color3.fromRGB(138, 138, 162),
Green = Color3.fromRGB(116, 203, 73),
Red = Color3.fromRGB(236, 72, 78),
Ally = Color3.fromRGB(86, 196, 255),
}
local AccentPresets = {
{ "Оранж", Color3.fromRGB(227, 137, 35) },
{ "Фиолет", Color3.fromRGB(124, 92, 255) },
{ "Синий", Color3.fromRGB(0, 170, 255) },
{ "Зелёный", Color3.fromRGB(0, 215, 135) },
{ "Розовый", Color3.fromRGB(255, 80, 160) },
}
--// STATE
local running = true
local minimized = false
local Conns = {}
local function Bind(signal, fn)
local c = signal:Connect(fn)
table.insert(Conns, c)
return c
end
local function New(class, props, children)
local inst = Instance.new(class)
for k, v in pairs(props) do
if k ~= "Parent" then inst[k] = v end
end
if children then
for _, c in ipairs(children) do c.Parent = inst end
end
if props.Parent then inst.Parent = props.Parent end
return inst
end
local function Corner(r) return New("UICorner", { CornerRadius = UDim.new(0, r) }) end
local function TI(t, style, dir) return TweenInfo.new(t, style or Enum.EasingStyle.Quint, dir or Enum.EasingDirection.Out) end
local function Tag(inst, role) inst:SetAttribute("__accent", role) return inst end
--// I18N
local LANG, bindings = "ru", {}
local TR = {
ru = {
subtitle = "KILL ALL • ESP • ГОЛОВА • АНТИ-ОТДАЧА",
tab_team = "Команды", tab_combat = "Бой", tab_visuals = "Визуалы",
tab_head = "Голова", tab_config = "Конфиг",
sec_team = "Команда / Раунд", sec_killall = "Kill All", sec_recoil = "Отдача",
sec_esp = "ESP", sec_head = "Хитбокс головы",
sec_gui = "Интерфейс", sec_lang = "Язык", sec_keys = "Клавиши",
team_check = "Проверка команды", radius = "Радиус спавн-команды",
rescan = "Пересканировать сейчас", allies = "Союзников",
scan_done = "Калибровка завершена · союзников: ",
kill_all = "Kill All (авто-стрельба)", fire_delay = "Интервал выстрела",
killall_note = "Головы растягиваются автоматически · стрельба по ближайшей видимой голове · не держи меню под курсором",
killed = "Убито",
no_recoil = "Убирать отдачу", recoil_strength = "Сила компенсации",
esp = "ESP", highlight = "Подсветка (сквозь стены)", head_box = "Бокс головы (сквозь стены)",
name = "Имя", hp = "Полоска HP", distance = "Дистанция", esp_dist = "Дальность ESP",
esp_color = "Цвет ESP", hb_color = "Цвет бокса головы",
head_expand = "Увеличение головы", head_size = "Размер головы", transparency = "Прозрачность",
particles = "Частицы", accent = "Акцент", gui_key = "Клавиша меню",
unload = "Выгрузить скрипт", delete_note = "Delete — выгрузка всегда",
preview_esp = "ПРЕДПРОСМОТР · ДЕМО ESP", preview_hint = "Тяни мышью — вращение · колесо — зум",
hp_stat = "Здоровье", team_stat = "Команда", neutral = "Нейтральный",
lang_tip = "Переключает язык интерфейса",
loaded = "NOVA v5 · RShift — меню · Delete — выгрузка",
},
en = {
subtitle = "KILL ALL • ESP • HEAD • ANTI-RECOIL",
tab_team = "Team", tab_combat = "Combat", tab_visuals = "Visuals",
tab_head = "Head", tab_config = "Config",
sec_team = "Team / Round", sec_killall = "Kill All", sec_recoil = "Recoil",
sec_esp = "ESP", sec_head = "Head hitbox",
sec_gui = "Interface", sec_lang = "Language", sec_keys = "Keys",
team_check = "Team check", radius = "Spawn team radius",
rescan = "Rescan now", allies = "Allies",
scan_done = "Calibration done · allies: ",
kill_all = "Kill All (auto-fire)", fire_delay = "Fire interval",
killall_note = "Heads expand automatically · fires at nearest visible head · keep menu away from cursor",
killed = "Killed",
no_recoil = "Remove recoil", recoil_strength = "Compensation strength",
esp = "ESP", highlight = "Highlight (through walls)", head_box = "Head box (through walls)",
name = "Name", hp = "HP bar", distance = "Distance", esp_dist = "ESP distance",
esp_color = "ESP color", hb_color = "Head box color",
head_expand = "Head expand", head_size = "Head size", transparency = "Transparency",
particles = "Particles", accent = "Accent", gui_key = "Menu key",
unload = "Unload script", delete_note = "Delete — unload always",
preview_esp = "PREVIEW · ESP DEMO", preview_hint = "Drag to rotate · wheel to zoom",
hp_stat = "Health", team_stat = "Team", neutral = "Neutral",
lang_tip = "Changes interface language only",
loaded = "NOVA v5 · RShift — menu · Delete — unload",
},
}
local function tr(k) local t = TR[LANG] return (t and t[k]) or k end
local function bind(fn) bindings[#bindings + 1] = fn fn() end
local function setLang(l)
if l ~= "ru" and l ~= "en" then return end
LANG = l
for _, f in ipairs(bindings) do pcall(f) end
end
local Notify, RefreshAccent, SelectTab
local CurrentTab = 1
local AlliesLabel, KillLabel
--// ROOT GUI
local ScreenGui = New("ScreenGui", {
Name = "NOVA_" .. HttpService:GenerateGUID(false):sub(1, 8),
ResetOnSpawn = false, IgnoreGuiInset = true,
ZIndexBehavior = Enum.ZIndexBehavior.Sibling, DisplayOrder = 999999,
})
do
local mounted = false
if gethui then
local ok, parent = pcall(gethui)
if ok and parent then
local ok2 = pcall(function() ScreenGui.Parent = parent end)
mounted = ok2 and ScreenGui.Parent == parent
end
end
if not mounted then
local ok = pcall(function() ScreenGui.Parent = game:GetService("CoreGui") end)
if not ok or not ScreenGui.Parent then ScreenGui.Parent = LP:WaitForChild("PlayerGui") end
end
end
local Scale = New("UIScale", { Scale = 0.9 })
local Main = New("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.fromScale(0.5, 0.5),
Size = UDim2.fromOffset(620, 440), BackgroundColor3 = Theme.Bg,
BorderSizePixel = 0, ClipsDescendants = true, Active = true, Parent = ScreenGui,
}, { Scale, Corner(12) })
New("UIStroke", { Color = Theme.Stroke, Thickness = 1, Transparency = 0.15, Parent = Main })
New("Frame", {
Size = UDim2.fromScale(1, 1), BackgroundColor3 = Color3.fromRGB(255, 255, 255), Parent = Main,
}, {
New("UIGradient", {
Rotation = 16,
Color = ColorSequence.new(Color3.fromRGB(255, 255, 255), Color3.fromRGB(190, 190, 220)),
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.97),
NumberSequenceKeypoint.new(1, 0.93),
}),
}),
})
--// PARTICLES
local ParticleLayer = New("Frame", { Size = UDim2.fromScale(1, 1), BackgroundTransparency = 1, Parent = Main })
local Particles = {}
for i = 1, 20 do
local size = math.random(1, 3)
local obj = New("Frame", {
Size = UDim2.fromOffset(size, size), Position = UDim2.fromScale(math.random(), math.random()),
BackgroundColor3 = i % 2 == 0 and Theme.Accent or Color3.fromRGB(120, 89, 58),
BackgroundTransparency = 0.78, BorderSizePixel = 0, Parent = ParticleLayer,
}, { Corner(size) })
local a = math.random() * math.pi * 2
Particles[#Particles + 1] = { Obj = obj, X = math.cos(a), Y = math.sin(a) }
end
Bind(RunService.RenderStepped, function(dt)
ParticleLayer.Visible = running and CFG.Particles and Main.Visible and not minimized
if not ParticleLayer.Visible then return end
for _, p in ipairs(Particles) do
local old = p.Obj.Position
local x = old.X.Scale + p.X * dt * 4.2
local y = old.Y.Scale + p.Y * dt * 4.2
if x 1 then x = 0 end
if y 1 then y = 0 end
p.Obj.Position = UDim2.fromScale(x, y)
end
end)
--// TOPBAR
local Topbar = New("Frame", { Size = UDim2.new(1, 0, 0, 44), BackgroundTransparency = 1, Active = true, Parent = Main })
local Dot = Tag(New("Frame", {
Position = UDim2.fromOffset(16, 15), Size = UDim2.fromOffset(14, 14),
BackgroundColor3 = Theme.Accent, Parent = Topbar,
}, { Corner(7) }), "bg")
New("Frame", {
Position = UDim2.fromOffset(3, 3), Size = UDim2.fromOffset(8, 8),
BackgroundColor3 = Color3.fromRGB(255, 255, 255), BackgroundTransparency = 0.55, Parent = Dot,
}, { Corner(4) })
New("TextLabel", {
Position = UDim2.fromOffset(40, 0), Size = UDim2.fromOffset(90, 44), BackgroundTransparency = 1,
Text = "NOVA", TextColor3 = Theme.Text, TextSize = 16,
Font = Enum.Font.GothamBlack, TextXAlignment = Enum.TextXAlignment.Left, Parent = Topbar,
})
New("TextLabel", {
Position = UDim2.fromOffset(96, 0), Size = UDim2.fromOffset(220, 44), BackgroundTransparency = 1,
Text = "· simple rebuild", TextColor3 = Theme.TextDim, TextSize = 13,
Font = Enum.Font.GothamMedium, TextXAlignment = Enum.TextXAlignment.Left, Parent = Topbar,
})
local KeyHint = New("TextLabel", {
AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -104, 0.5, 0), Size = UDim2.fromOffset(84, 24),
BackgroundColor3 = Theme.Bg2, BackgroundTransparency = 0.4, Text = CFG.GuiKey.Name,
TextColor3 = Theme.TextDim, TextSize = 11, Font = Enum.Font.GothamBold, Parent = Topbar,
}, { Corner(6) })
local MinBtn = New("TextButton", {
AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -68, 0.5, 0), Size = UDim2.fromOffset(26, 26),
BackgroundColor3 = Theme.Bg2, BackgroundTransparency = 0.4, Text = "—",
TextColor3 = Theme.TextDim, TextSize = 14, Font = Enum.Font.GothamBold, AutoButtonColor = false, Parent = Topbar,
}, { Corner(13) })
local CloseBtn = New("TextButton", {
AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -36, 0.5, 0), Size = UDim2.fromOffset(26, 26),
BackgroundColor3 = Theme.Bg2, BackgroundTransparency = 0.4, Text = "×",
TextColor3 = Theme.TextDim, TextSize = 15, Font = Enum.Font.GothamBold, AutoButtonColor = false, Parent = Topbar,
}, { Corner(13) })
--// BODY
local Body = New("Frame", {
Position = UDim2.fromOffset(0, 44), Size = UDim2.new(1, 0, 1, -44),
BackgroundTransparency = 1, Parent = Main,
})
local Sidebar = New("Frame", {
Size = UDim2.new(0, 152, 1, 0), BackgroundTransparency = 1, Parent = Body,
}, {
New("UIListLayout", { Padding = UDim.new(0, 4), HorizontalAlignment = Enum.HorizontalAlignment.Center, SortOrder = Enum.SortOrder.LayoutOrder }),
New("UIPadding", { PaddingTop = UDim.new(0, 10) }),
})
New("Frame", { Position = UDim2.fromOffset(152, 0), Size = UDim2.new(0, 1, 1, 0), BackgroundColor3 = Theme.Bg3, BackgroundTransparency = 0.5, Parent = Body })
local Content = New("Frame", { Position = UDim2.fromOffset(153, 0), Size = UDim2.new(1, -153, 1, 0), BackgroundTransparency = 1, Parent = Body })
--// PAGES + NAV — вкладка Мир удалена, добавлена Бой
local Pages, TabBtns = {}, {}
local NavInfo = {
{ id = "team", key = "tab_team", glyph = "◈" },
{ id = "combat", key = "tab_combat", glyph = "✦" },
{ id = "visuals", key = "tab_visuals", glyph = "◉" },
{ id = "head", key = "tab_head", glyph = "◎" },
{ id = "config", key = "tab_config", glyph = "⚙" },
}
local function MakePage(id)
local page = New("ScrollingFrame", {
Size = UDim2.fromScale(1, 1), BackgroundTransparency = 1, BorderSizePixel = 0, Visible = false,
ScrollBarThickness = 3, ScrollBarImageColor3 = Theme.Stroke,
CanvasSize = UDim2.new(), AutomaticCanvasSize = Enum.AutomaticSize.Y, Parent = Content,
}, {
New("UIListLayout", { Padding = UDim.new(0, 10), SortOrder = Enum.SortOrder.LayoutOrder }),
New("UIPadding", { PaddingLeft = UDim.new(0, 10), PaddingRight = UDim.new(0, 14), PaddingTop = UDim.new(0, 12), PaddingBottom = UDim.new(0, 14) }),
})
Pages[id] = page
return page
end
for _, n in ipairs(NavInfo) do MakePage(n.id) end
local function MakeTab(info, order)
local btn = New("TextButton", {
Size = UDim2.new(1, -16, 0, 38), BackgroundColor3 = Theme.Bg2, BackgroundTransparency = 1,
Text = "", AutoButtonColor = false, LayoutOrder = order, Parent = Sidebar,
}, { Corner(9) })
local ind = Tag(New("Frame", {
Size = UDim2.new(0, 3, 0, 16), Position = UDim2.new(0, 0, 0.5, 0),
BackgroundColor3 = Theme.Accent, BackgroundTransparency = 1, Parent = btn,
}, { Corner(2) }), "bg")
New("TextLabel", {
Position = UDim2.fromOffset(15, 0), Size = UDim2.fromOffset(22, 38), BackgroundTransparency = 1,
Text = info.glyph, TextColor3 = Theme.TextDim, TextSize = 15, Font = Enum.Font.GothamBold, Parent = btn,
})
local lbl = New("TextLabel", {
Position = UDim2.fromOffset(43, 0), Size = UDim2.new(1, -50, 1, 0), BackgroundTransparency = 1,
TextColor3 = Theme.TextDim, TextSize = 13, Font = Enum.Font.GothamMedium,
TextXAlignment = Enum.TextXAlignment.Left, Parent = btn,
})
bind(function() lbl.Text = tr(info.key) end)
btn.MouseEnter:Connect(function() if CurrentTab ~= order then TweenService:Create(btn, TI(0.15), { BackgroundTransparency = 0.6 }):Play() end end)
btn.MouseLeave:Connect(function() if CurrentTab ~= order then TweenService:Create(btn, TI(0.15), { BackgroundTransparency = 1 }):Play() end end)
btn.MouseButton1Click:Connect(function() SelectTab(order) end)
TabBtns[order] = { Btn = btn, Ind = ind, Lbl = lbl }
end
for i, n in ipairs(NavInfo) do MakeTab(n, i) end
function SelectTab(i)
CurrentTab = i
for j = 1, #NavInfo do
local active = (j == i)
Pages[NavInfo[j].id].Visible = active
local t = TabBtns[j]
TweenService:Create(t.Ind, TI(0.25), { BackgroundTransparency = active and 0 or 1 }):Play()
TweenService:Create(t.Lbl, TI(0.25), { TextColor3 = active and Theme.Accent or Theme.TextDim }):Play()
TweenService:Create(t.Btn, TI(0.25), { BackgroundTransparency = active and 0.6 or 1 }):Play()
end
end
--// COMPONENTS
local function Row(parent, height)
local row = New("TextButton", {
Size = UDim2.new(1, 0, 0, height or 36), BackgroundColor3 = Theme.Bg2,
BackgroundTransparency = 0.35, Text = "", AutoButtonColor = false, Parent = parent,
}, { Corner(8) })
row.MouseEnter:Connect(function() TweenService:Create(row, TI(0.13), { BackgroundTransparency = 0.08 }):Play() end)
row.MouseLeave:Connect(function() TweenService:Create(row, TI(0.18), { BackgroundTransparency = 0.35 }):Play() end)
return row
end
local function Section(page, titleKey)
local holder = New("Frame", { Size = UDim2.new(1, 0, 0, 26), BackgroundTransparency = 1, Parent = page })
Tag(New("Frame", {
Position = UDim2.fromOffset(0, 13), Size = UDim2.fromOffset(3, 12),
BackgroundColor3 = Theme.Accent, BackgroundTransparency = 0.35, Parent = holder,
}, { Corner(2) }), "bg")
local l = New("TextLabel", {
Position = UDim2.fromOffset(11, 0), Size = UDim2.new(1, -11, 1, 0), BackgroundTransparency = 1,
TextColor3 = Theme.TextDim, TextSize = 11, Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Left, Parent = holder,
})
bind(function() l.Text = tr(titleKey):upper() end)
end
local function Label(page, textKey)
local l = New("TextLabel", {
Size = UDim2.new(1, 0, 0, 20), BackgroundTransparency = 1,
TextColor3 = Theme.TextDim, TextSize = 11, Font = Enum.Font.Gotham,
TextXAlignment = Enum.TextXAlignment.Left, TextTransparency = 0.15, TextWrapped = true, Parent = page,
})
bind(function() l.Text = tr(textKey) end)
return l
end
local function Toggle(page, nameKey, key, callback)
local row = Row(page)
local lbl = New("TextLabel", {
Position = UDim2.fromOffset(12, 0), Size = UDim2.new(1, -80, 1, 0), BackgroundTransparency = 1,
TextColor3 = Theme.Text, TextSize = 13, Font = Enum.Font.GothamMedium,
TextXAlignment = Enum.TextXAlignment.Left, Parent = row,
})
bind(function() lbl.Text = tr(nameKey) end)
local sw = New("Frame", {
AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -10, 0.5, 0), Size = UDim2.fromOffset(36, 19),
BackgroundColor3 = Theme.Bg3, Parent = row,
}, { Corner(10), New("UIStroke", { Color = Theme.Stroke, Thickness = 1 }) })
local knob = New("Frame", {
AnchorPoint = Vector2.new(0, 0.5), Position = UDim2.new(0, 2.5, 0.5, 0), Size = UDim2.fromOffset(14, 14),
BackgroundColor3 = Theme.TextDim, ZIndex = 2, Parent = sw,
}, { Corner(7) })
local function render(instant)
local state = CFG[key] == true
local t = TweenInfo.new(instant and 0 or 0.28, Enum.EasingStyle.Quint, Enum.EasingDirection.Out)
TweenService:Create(sw, t, { BackgroundColor3 = state and Theme.Accent or Theme.Bg3 }):Play()
TweenService:Create(knob, t, {
Position = state and UDim2.new(1, -16.5, 0.5, 0) or UDim2.new(0, 2.5, 0.5, 0),
BackgroundColor3 = state and Color3.fromRGB(255, 255, 255) or Theme.TextDim,
}):Play()
end
row.MouseButton1Click:Connect(function()
CFG[key] = not CFG[key]
render()
if callback then callback(CFG[key]) end
end)
render(true)
end
local function Slider(page, nameKey, key, mn, mx, step, callback)
local row = Row(page, 48)
local lbl = New("TextLabel", {
Position = UDim2.fromOffset(12, 0), Size = UDim2.new(1, -90, 0, 26), BackgroundTransparency = 1,
TextColor3 = Theme.Text, TextSize = 13, Font = Enum.Font.GothamMedium,
TextXAlignment = Enum.TextXAlignment.Left, Parent = row,
})
bind(function() lbl.Text = tr(nameKey) end)
local val = Tag(New("TextLabel", {
AnchorPoint = Vector2.new(1, 0), Position = UDim2.new(1, -12, 0, 0), Size = UDim2.fromOffset(80, 26),
BackgroundTransparency = 1, TextColor3 = Theme.Accent, TextSize = 12, Font = Enum.Font.GothamBold,
TextXAlignment = Enum.TextXAlignment.Right, Parent = row,
}), "text")
local track = New("Frame", {
AnchorPoint = Vector2.new(0, 1), Position = UDim2.new(0, 12, 1, -10), Size = UDim2.new(1, -24, 0, 4),
BackgroundColor3 = Theme.Bg3, Parent = row,
}, { Corner(2) })
local fill = Tag(New("Frame", { BackgroundColor3 = Theme.Accent, Parent = track }, { Corner(2) }), "bg")
local knob = New("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5), Size = UDim2.fromOffset(11, 11),
BackgroundColor3 = Color3.fromRGB(255, 255, 255), ZIndex = 2, Parent = track,
}, { Corner(5), New("UIStroke", { Color = Theme.Stroke, Thickness = 1 }) })
local dragging = false
local function set(v)
v = math.clamp(v, mn, mx)
v = math.floor(v / step + 0.5) * step
v = tonumber(string.format("%.3f", v)) or mn
CFG[key] = v
local rel = (v - mn) / (mx - mn)
fill.Size = UDim2.new(rel, 0, 1, 0)
knob.Position = UDim2.new(rel, 0, 0.5, 0)
val.Text = step < 1 and string.format("%.2f", v) or tostring(math.floor(v))
if callback then callback(v) end
end
local function fromX(px)
if track.AbsoluteSize.X <= 0 then return end
local rel = math.clamp((px - track.AbsolutePosition.X) / track.AbsoluteSize.X, 0, 1)
set(mn + (mx - mn) * rel)
end
track.InputBegan:Connect(function(inp)
if inp.UserInputType == Enum.UserInputType.MouseButton1 or inp.UserInputType == Enum.UserInputType.Touch then
dragging = true
fromX(inp.Position.X)
end
end)
Bind(UserInputService.InputEnded, function(inp)
if inp.UserInputType == Enum.UserInputType.MouseButton1 or inp.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
Bind(UserInputService.InputChanged, function(inp)
if dragging and (inp.UserInputType == Enum.UserInputType.MouseMovement or inp.UserInputType == Enum.UserInputType.Touch) then
fromX(inp.Position.X)
end
end)
set(CFG[key])
end
--// COLOR PICKER
local function ColorPicker(page, nameKey, key, callback)
local container = New("Frame", {
Size = UDim2.new(1, 0, 0, 36), BackgroundTransparency = 1,
ClipsDescendants = true, Parent = page,
})
local header = Row(container)
local lbl = New("TextLabel", {
Position = UDim2.fromOffset(12, 0), Size = UDim2.new(1, -110, 1, 0), BackgroundTransparency = 1,
TextColor3 = Theme.Text, TextSize = 13, Font = Enum.Font.GothamMedium,
TextXAlignment = Enum.TextXAlignment.Left, Parent = header,
})
bind(function() lbl.Text = tr(nameKey) end)
local chip = New("Frame", {
AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -32, 0.5, 0), Size = UDim2.fromOffset(22, 22),
BackgroundColor3 = CFG[key], Parent = header,
}, { Corner(6), New("UIStroke", { Color = Theme.Stroke, Thickness = 1 }) })
local chev = New("TextLabel", {
AnchorPoint = Vector2.new(1, 0.5), Position = UDim2.new(1, -10, 0.5, 0), Size = UDim2.fromOffset(16, 16),
BackgroundTransparency = 1, Text = "▾", TextColor3 = Theme.TextDim, TextSize = 12,
Font = Enum.Font.GothamBold, Parent = header,
})
local body = New("Frame", {
Position = UDim2.fromOffset(0, 40), Size = UDim2.new(1, 0, 0, 178),
BackgroundTransparency = 1, Parent = container,
})
local sv = New("Frame", {
Size = UDim2.new(1, 0, 0, 146), BackgroundColor3 = Color3.fromHSV(0, 1, 1), Parent = body,
}, { Corner(8), New("UIStroke", { Color = Theme.Stroke, Thickness = 1 }) })
New("Frame", {
Size = UDim2.fromScale(1, 1), BackgroundColor3 = Color3.new(1, 1, 1), Parent = sv,
}, {
Corner(8),
New("UIGradient", {
Rotation = 0,
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(1, 1),
}),
}),
})
New("Frame", {
Size = UDim2.fromScale(1, 1), BackgroundColor3 = Color3.new(0, 0, 0), ZIndex = 2, Parent = sv,
}, {
Corner(8),
New("UIGradient", {
Rotation = 90,
Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 1),
NumberSequenceKeypoint.new(1, 0),
}),
}),
})
local svKnob = New("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5), Size = UDim2.fromOffset(12, 12),
BackgroundColor3 = Color3.new(1, 1, 1), ZIndex = 3, Parent = sv,
}, { Corner(6), New("UIStroke", { Color = Color3.new(0, 0, 0), Thickness = 1.5, Transparency = 0.3 }) })
local hue = New("Frame", {
AnchorPoint = Vector2.new(0, 1), Position = UDim2.new(0, 0, 1, 0), Size = UDim2.new(1, 0, 0, 18),
Parent = body,
}, { Corner(6), New("UIGradient", {
Rotation = 0,
Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)),
ColorSequenceKeypoint.new(0.17, Color3.fromRGB(255, 255, 0)),
ColorSequenceKeypoint.new(0.33, Color3.fromRGB(0, 255, 0)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 255, 255)),
ColorSequenceKeypoint.new(0.67, Color3.fromRGB(0, 0, 255)),
ColorSequenceKeypoint.new(0.83, Color3.fromRGB(255, 0, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0)),
}),
}) })
local hueKnob = New("Frame", {
AnchorPoint = Vector2.new(0.5, 0.5), Size = UDim2.fromOffset(5, 24),
BackgroundColor3 = Color3.new(1, 1, 1), ZIndex = 2, Parent = hue,
}, { Corner(2), New("UIStroke", { Color = Theme.Stroke, Thickness = 1 }) })
local h, s, v = CFG[key]:ToHSV()
local function apply()
CFG[key] = Color3.fromHSV(h, s, v)
chip.BackgroundColor3 = CFG[key]
sv.BackgroundColor3 = Color3.fromHSV(h, 1, 1)
svKnob.Position = UDim2.new(s, 0, 1 - v, 0)
hueKnob.Position = UDim2.new(h, 0, 0.5, 0)
if callback then callback(CFG[key]) end
end
local dragSV, dragH = false, false
local function updSV(pos)
if sv.AbsoluteSize.X <= 0 or sv.AbsoluteSize.Y <= 0 then return end
s = math.clamp((pos.X - sv.AbsolutePosition.X) / sv.AbsoluteSize.X, 0, 1)
v = 1 - math.clamp((pos.Y - sv.AbsolutePosition.Y) / sv.AbsoluteSize.Y, 0, 1)
apply()
end
local function updH(pos)
if hue.AbsoluteSize.X = 0.5 then
fpsValue = fpsFrames / (os.clock() - fpsLast)
fpsFrames, fpsLast = 0, os.clock()
end
end)
local Wm = New("TextLabel", {
Position = UDim2.fromOffset(12, 8), Size = UDim2.fromOffset(320, 20), BackgroundTransparency = 1,
TextColor3 = Theme.TextDim, TextTransparency = 0.25, TextSize = 12,
Font = Enum.Font.GothamMedium, TextXAlignment = Enum.TextXAlignment.Left, Parent = ScreenGui,
})
Bind(RunService.RenderStepped, function()
Wm.Text = "NOVA · " .. math.floor(fpsValue + 0.5) .. " fps"
end)
--============================================================
-- FEATURES
--============================================================
local function getRoot(player)
local c = player and player.Character
if not c then return nil end
return c:FindFirstChild("HumanoidRootPart") or c:FindFirstChild("UpperTorso") or c:FindFirstChild("Torso")
end
local function getHP(player)
local c = player and player.Character
if not c then return 0 end
local hum = c:FindFirstChildOfClass("Humanoid")
if hum then return hum.Health end
local hp = c:GetAttribute("Health") or c:GetAttribute("HP")
if typeof(hp) == "number" then return hp end
return getRoot(player) and 100 or 0
end
local function alive(player) return getHP(player) > 0 end
--// TEAM
local roundTeam, mySpawnPoint, scanning = {}, nil, false
local ATTRIBUTE_KEYS = { "Team", "TeamId", "TeamID", "Side", "Faction" }
local function standardTeammate(a, b)
if not a or not b then return false end
if a.Team and b.Team then return a.Team == b.Team end
if not a.Neutral and not b.Neutral and a.TeamColor and b.TeamColor then
return a.TeamColor == b.TeamColor
end
for _, key in ipairs(ATTRIBUTE_KEYS) do
local x, y = a:GetAttribute(key), b:GetAttribute(key)
if x ~= nil and y ~= nil then return tostring(x) == tostring(y) end
end
return false
end
local function teammate(plr)
if plr == LP then return true end
if standardTeammate(LP, plr) then return true end
return roundTeam[plr] == true
end
local function validTarget(plr)
if plr == LP or not alive(plr) then return false end
if CFG.TeamCheck and teammate(plr) then return false end
return true
end
local function refreshCounter()
if AlliesLabel then
local n = 0
for _ in pairs(roundTeam) do n += 1 end
AlliesLabel.Text = tr("allies") .. ": " .. n .. (scanning and " · …" or "")
end
end
local function startScan(seconds)
if scanning then return end
scanning = true
task.spawn(function()
table.clear(roundTeam)
local root = getRoot(LP)
if root then mySpawnPoint = root.Position end
local t0 = os.clock()
while os.clock() - t0 < seconds do
local mr = getRoot(LP)
if mr then
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LP and not roundTeam[plr] and alive(plr) then
local r = getRoot(plr)
if r and (r.Position - mr.Position).Magnitude <= CFG.TeamRadius then
roundTeam[plr] = true
end
end
end
end
task.wait(0.25)
end
scanning = false
local n = 0
for _ in pairs(roundTeam) do n += 1 end
Notify(tr("sec_team"), tr("scan_done") .. n, 3)
refreshCounter()
end)
end
--// ESP
local ESP = {}
local ESPremove
local HLFolder = New("Folder", { Name = "NOVA_HL_" .. math.random(1000, 9999), Parent = workspace })
ESPremove = function(plr)
local d = ESP[plr]
if not d then return end
pcall(function() d.Highlight:Destroy() end)
pcall(function() d.HeadHL:Destroy() end)
pcall(function() d.Box:Destroy() end)
pcall(function() d.Gui:Destroy() end)
ESP[plr] = nil
end
local function ensureESP(plr)
if plr == LP then return end
local char = plr.Character
if not char then return end
local ex = ESP[plr]
if ex and ex.Char == char then return end
if ex then ESPremove(plr) end
local head = char:FindFirstChild("Head") or char:FindFirstChild("HumanoidRootPart")
if not head then return end
local hl = New("Highlight", {
Adornee = char, DepthMode = Enum.HighlightDepthMode.AlwaysOnTop,
FillTransparency = 0.75, OutlineTransparency = 0.1, Enabled = false, Parent = char,
})
local headHL = New("Highlight", {
Adornee = head, DepthMode = Enum.HighlightDepthMode.AlwaysOnTop,
FillTransparency = 0.85, OutlineTransparency = 0.05, Enabled = false, Parent = HLFolder,
})
local box = New("BoxHandleAdornment", {
Adornee = head, AlwaysOnTop = true, ZIndex = 10, Size = head.Size,
Transparency = 0.6, Visible = false, Parent = HLFolder,
})
local bill = New("BillboardGui", {
Adornee = head, Size = UDim2.fromOffset(200, 40),
StudsOffset = Vector3.new(0, 2.4, 0), AlwaysOnTop = true, Enabled = false, Parent = HLFolder,
})
local nameL = New("TextLabel", {
Size = UDim2.new(1, 0, 0, 14), BackgroundTransparency = 1,
Font = Enum.Font.GothamBold, TextSize = 13, TextStrokeTransparency = 0.3, Parent = bill,
})
local hpBg = New("Frame", {
AnchorPoint = Vector2.new(0.5, 0), Position = UDim2.new(0.5, 0, 0, 17),
Size = UDim2.new(1, -40, 0, 4), BackgroundColor3 = Color3.fromRGB(10, 10, 14),
BackgroundTransparency = 0.25, Parent = bill,
}, { Corner(2) })
local hp = New("Frame", {
AnchorPoint = Vector2.new(0, 1), Position = UDim2.new(0, 0, 1, 0),
Size = UDim2.fromScale(1, 1), BackgroundColor3 = Theme.Green, Parent = hpBg,
}, { Corner(2) })
local distL = New("TextLabel", {
Position = UDim2.new(0, 0, 0, 24), Size = UDim2.new(1, 0, 0, 12), BackgroundTransparency = 1,
Font = Enum.Font.GothamMedium, TextSize = 11, TextColor3 = Theme.TextDim,
TextStrokeTransparency = 0.3, Parent = bill,
})
ESP[plr] = { Char = char, Head = head, Highlight = hl, HeadHL = headHL, Box = box,
Gui = bill, NameL = nameL, Hp = hp, HpBg = hpBg, DistL = distL }
end
local function updateESP()
local cam = workspace.CurrentCamera
if not cam then return end
for _, plr in ipairs(Players:GetPlayers()) do ensureESP(plr) end
for plr, d in pairs(ESP) do
local char = plr.Character
if not char then
ESPremove(plr)
else
local root = getRoot(plr)
local dist = root and (root.Position - cam.CFrame.Position).Magnitude or math.huge
local show = running and CFG.ESP and alive(plr)
and (not CFG.TeamCheck or not teammate(plr))
and dist 0.5 and Theme.Green
or hpv > 0.25 and Color3.fromRGB(255, 215, 60)
or Theme.Red
d.DistL.Visible = CFG.Distance
d.DistL.Text = math.floor(dist) .. (LANG == "ru" and " м" or " m")
end
end
end
end
--// HEAD EXPAND — при активном Kill All расширяет головы валидных целей даже с выключенным тумблером
local originalHeads = {}
local function restoreOneHead(head)
local o = originalHeads[head]
if not o then return end
originalHeads[head] = nil
if head.Parent then
pcall(function()
head.Size = o.Size
head.Transparency = o.Transparency
head.CanCollide = o.CanCollide
head.Massless = o.Massless
end)
end
end
local function restoreHeads()
for head in pairs(originalHeads) do restoreOneHead(head) end
end
--// KILL ALL — состояние
local KillAll = { Active = false, holding = false, lastClick = 0, kills = 0, current = nil, lastHP = 0, aimed = false }
local function refreshKill()
if KillLabel then
KillLabel.Text = tr("killed") .. ": " .. KillAll.kills
end
end
local function headPass()
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LP then
local char = plr.Character
local head = char and char:FindFirstChild("Head")
if head then
local want = (CFG.HeadExpand or KillAll.Active) and validTarget(plr)
if want then
if not originalHeads[head] then
originalHeads[head] = {
Size = head.Size, Transparency = head.Transparency,
CanCollide = head.CanCollide, Massless = head.Massless,
}
end
local sz = CFG.HeadSize
if KillAll.Active then sz = math.max(sz, 10) end
pcall(function()
head.Size = Vector3.new(sz, sz, sz)
head.Transparency = CFG.HeadTransparency
head.CanCollide = false
head.Massless = true
end)
else
restoreOneHead(head)
end
end
end
end
end
--// FIRE INPUT — mouse1press при наличии, иначе VirtualUser
local function fireDown()
if type(mouse1press) == "function" then
pcall(mouse1press)
else
pcall(function()
VirtualUser:CaptureController()
VirtualUser:Button1Down(Vector2.new())
end)
end
end
local function fireUp()
if type(mouse1release) == "function" then
pcall(mouse1release)
else
pcall(function()
VirtualUser:CaptureController()
VirtualUser:Button1Up(Vector2.new())
end)
end
end
local function fireStop()
if KillAll.holding then
KillAll.holding = false
fireUp()
end
end
local VisParams = RaycastParams.new()
VisParams.FilterType = Enum.RaycastFilterType.Exclude
VisParams.IgnoreWater = true
local function headVisible(head)
local cam = workspace.CurrentCamera
if not cam then return false end
local chars = {}
for _, p in ipairs(Players:GetPlayers()) do
if p.Character then table.insert(chars, p.Character) end
end
VisParams.FilterDescendantsInstances = chars
local r = workspace:Raycast(cam.CFrame.Position, head.Position - cam.CFrame.Position, VisParams)
return r == nil
end
local function collectTargets()
local cam = workspace.CurrentCamera
if not cam then return {} end
local list = {}
for _, plr in ipairs(Players:GetPlayers()) do
if validTarget(plr) then
local char = plr.Character
local head = char and char:FindFirstChild("Head")
if head then
local root = getRoot(plr)
local d = root and (root.Position - cam.CFrame.Position).Magnitude or math.huge
table.insert(list, { Plr = plr, Head = head, Dist = d })
end
end
end
table.sort(list, function(a, b) return a.Dist < b.Dist end)
return list
end
--// АИМ Kill All — после камеры игры, чтобы её контроллер не перезаписывал прицел
RunService:BindToRenderStep("nova_aim", Enum.RenderPriority.Camera.Value + 1, function()
KillAll.aimed = false
if not running or not KillAll.Active then
fireStop()
return
end
local cam = workspace.CurrentCamera
if not cam then return end
local hum = LP.Character and LP.Character:FindFirstChildOfClass("Humanoid")
if not hum or hum.Health = CFG.FireDelay then
KillAll.lastClick = now
if KillAll.holding then
KillAll.holding = false
fireUp()
else
KillAll.holding = true
fireDown()
end
end
end)
--// АНТИ-ОТДАЧА
-- слой 1: компенсация вращения камеры в кадрах БЕЗ движения мыши (отдача = поворот не от игрока)
-- слой 2: зануление NumberValue с recoil/kick в имени внутри PlayerScripts и персонажа
local Recoil = { lastLook = nil, userMoved = false }
Bind(UserInputService.InputChanged, function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
Recoil.userMoved = true
end
end)
RunService:BindToRenderStep("nova_recoil", Enum.RenderPriority.Camera.Value + 2, function()
local cam = workspace.CurrentCamera
if not cam then return end
local cur = cam.CFrame.LookVector
if not running or not CFG.NoRecoil or KillAll.aimed then
Recoil.lastLook = cur
Recoil.userMoved = false
return
end
local last = Recoil.lastLook
if not last or Recoil.userMoved then
Recoil.lastLook = cur
Recoil.userMoved = false
return
end
local dot = math.clamp(last:Dot(cur), -1, 1)
local angle = math.acos(dot)
if angle > 0.0004 and angle 1e-6 then
local corr = CFrame.fromAxisAngle(axis.Unit, -angle * (CFG.RecoilStrength / 100))
cam.CFrame = corr * cam.CFrame
end
end
Recoil.lastLook = cam.CFrame.LookVector
end)
task.spawn(function()
while running do
task.wait(0.5)
if CFG.NoRecoil then
local roots = {}
local ps = LP:FindFirstChild("PlayerScripts")
if ps then table.insert(roots, ps) end
if LP.Character then table.insert(roots, LP.Character) end
for _, root in ipairs(roots) do
for _, inst in ipairs(root:GetDescendants()) do
if inst:IsA("NumberValue") or inst:IsA("IntValue") then
local n = inst.Name:lower()
if n:find("recoil", 1, true) or n:find("kick", 1, true) then
if inst.Value ~= 0 then
pcall(function() inst.Value = 0 end)
end
end
end
end
end
end
end
end)
--// TEAM HOOKS
Bind(LP.CharacterAdded, function()
table.clear(roundTeam)
refreshCounter()
fireStop()
task.delay(0.15, function() if running then startScan(5) end end)
end)
local function hookSpawns(plr)
if plr == LP then return end
Bind(plr.CharacterAdded, function(char)
if scanning or not mySpawnPoint then return end
local hrp = char:WaitForChild("HumanoidRootPart", 3)
if hrp and (hrp.Position - mySpawnPoint).Magnitude = ap.X and mp.X = ap.Y and mp.Y 0 and -0.08 or 0.08), 0.6, 2.2)
end
end
end)
task.spawn(function() task.wait(0.25) load() end)
Bind(LP.CharacterAdded, function()
task.delay(0.8, function() if running then load() end end)
end)
Bind(RunService.RenderStepped, function()
if not (running and ready) then
mock.Visible = false
return
end
if vp.Visible then updateCam() end
-- демо ESP: живые цвета и тумблеры
local show = CFG.ESP
if prevBodyHL then
prevBodyHL.Enabled = show and CFG.Highlight
if show and CFG.Highlight then
prevBodyHL.FillColor = CFG.ESPColor
prevBodyHL.OutlineColor = CFG.ESPColor
end
end
if prevHeadHL then
prevHeadHL.Enabled = show and CFG.HeadBox
if show and CFG.HeadBox then
prevHeadHL.FillColor = CFG.HeadBoxColor
prevHeadHL.OutlineColor = CFG.HeadBoxColor
end
end
mock.Visible = show and previewHead ~= nil and vp.Visible
if mock.Visible then
mockName.Visible = CFG.Name
mockName.TextColor3 = CFG.ESPColor
mockHpBg.Visible = CFG.Health
mockDist.Visible = CFG.Distance
local hw = overlayHolder.AbsoluteSize.X
local okP, p = pcall(function()
return vcam:WorldToViewportPoint(previewHead.Position)
end)
if okP and typeof(p) == "Vector3" and hw > 0 then
mock.Position = UDim2.fromOffset(
math.clamp(p.X, 92, hw - 92),
math.clamp(p.Y - 16, 42, 192))
else
mock.Visible = false
end
end
end)
end
--============================================================
-- LOOPS
--============================================================
Bind(RunService.RenderStepped, updateESP)
local slowAcc = 0
Bind(RunService.Heartbeat, function(dt)
slowAcc += dt
if slowAcc < 0.3 then return end
slowAcc = 0
if not running then return end
headPass()
refreshCounter()
refreshKill()
-- счётчик убийств: текущая цель умерла под Kill All
if KillAll.Active and KillAll.current then
local hp = getHP(KillAll.current)
if hp 0 then
KillAll.kills += 1
refreshKill()
end
KillAll.lastHP = hp
if hp 0 then
local vp = cam.ViewportSize
out = p.X < 0 or p.Y vp.X or (p.Y + s.Y) > vp.Y
end
end
SetHome(out)
end)
homeClick.MouseButton1Click:Connect(function()
if not Main.Visible then
SetOpen(true)
end
TweenService:Create(Main, TweenInfo.new(0.55, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
Position = UDim2.fromScale(0.5, 0.5),
}):Play()
end)
Bind(UserInputService.InputBegan, function(input, gpe)
if gpe then return end
if input.KeyCode == CFG.GuiKey then SetOpen(not isOpen) end
if input.KeyCode == Enum.KeyCode.Delete then Unload() end
end)
--// DRAG
do
local dragging, dragStart, startPos = false, nil, nil
Topbar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = Main.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then dragging = false end
end)
end
end)
Bind(UserInputService.InputChanged, function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
Main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
end
--// INIT
SelectTab(3)
refreshKill()
Notify("NOVA", tr("loaded"), 4)
How to Use This Script
1
Open Your Executor
Launch a supported executor and attach it to a running Roblox session.
2
Copy the Script
Click the Copy button above. The full loadstring is placed on your clipboard instantly.
3
Paste & Execute
Paste it into the executor and hit Execute. The hub window opens inside the game.
Features
Compatible Executors
Similar Scripts
3
5 days ago
Key System
BloxStrike Flow Script – Silent Aim, Aimbot, ESP & Auto Fire
BloxStrike
26
2 weeks ago
No Key
VANTA CORE BloxStrike Script Keyless, Open Source, Aimbot & ESP
BloxStrike
8
2 weeks ago
No Key
BloxStrike Script MunkeHub Combat, Aimbot, ESP & Automation
BloxStrike
11
3 weeks ago
No Key
Lunar Hub | BloxStrike Script
BloxStrike
Comments
0Join the discussion about this script.
No comments yet. Be the first to comment!