The Bronx 3 shoot script
Keyless

The Bronx 3 shoot script

πŸ‘‘THA BRONX 3πŸ‘‘trolistrolis 630 views 411 executesUpdated Oct 19, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Scriptβ€’1083 lines (30587 chars)
--[[
  NOVA MENU - LocalScript
  Place it in: StarterPlayer -> StarterPlayerScripts -> LocalScript
  Works only inside your own game (Roblox Studio).

  Controls
    CTRL ........ open / close the menu
    F ........... toggle Fly      (WASD + Space / Shift)
    N ........... toggle Noclip
    Hold RMB .... aimbot
]]

-- Everything below (up to the key gate at the bottom) only runs after
-- the correct key has been entered.
local function loadNova()

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local camera = workspace.CurrentCamera

---------------------------------------------------------------------
-- Settings
---------------------------------------------------------------------
local settings = {
	-- Combat
	Aim = true,
	AutoShoot = false,
	TeamCheck = true,
	WallCheck = true,
	ShowFOV = true,
	FOV = 150,
	Smooth = 0.25,
	AimPart = "Head",
	MaxDistance = 1000,
	-- Visuals
	ESP = true,
	ShowNames = true,
	ShowHealth = true,
	ShowDistance = true,
	CameraFOV = 70,
	-- Movement
	Fly = false,
	FlySpeed = 60,
	Noclip = false,
}

---------------------------------------------------------------------
-- Theme + helpers
---------------------------------------------------------------------
local theme = {
	bg = Color3.fromRGB(16, 16, 22),
	side = Color3.fromRGB(21, 21, 29),
	row = Color3.fromRGB(28, 28, 38),
	off = Color3.fromRGB(58, 58, 72),
	accent = Color3.fromRGB(124, 92, 255),
	accent2 = Color3.fromRGB(64, 180, 255),
	text = Color3.fromRGB(236, 236, 244),
	sub = Color3.fromRGB(140, 140, 158),
	enemy = Color3.fromRGB(255, 70, 70),
	friend = Color3.fromRGB(70, 220, 120),
}

local function new(class, props, parent)
	local inst = Instance.new(class)
	for k, v in pairs(props or {}) do
		inst[k] = v
	end
	inst.Parent = parent
	return inst
end

local function corner(inst, radius)
	return new("UICorner", { CornerRadius = UDim.new(0, radius) }, inst)
end

local function tween(inst, time, props)
	TweenService:Create(inst, TweenInfo.new(time, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), props):Play()
end

local order = 0
local function nextOrder()
	order += 1
	return order
end

---------------------------------------------------------------------
-- ScreenGui
---------------------------------------------------------------------
local gui = new("ScreenGui", {
	Name = "NovaMenu",
	ResetOnSpawn = false,
	IgnoreGuiInset = true,
	ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
	DisplayOrder = 100,
}, player:WaitForChild("PlayerGui"))

-- invisible modal button: frees the mouse cursor while the menu is open
local modal = new("TextButton", {
	Size = UDim2.fromOffset(0, 0),
	BackgroundTransparency = 1,
	Text = "",
	Modal = false,
}, gui)

-- FOV circle
local fovCircle = new("Frame", {
	AnchorPoint = Vector2.new(0.5, 0.5),
	BackgroundTransparency = 1,
	Visible = false,
}, gui)
corner(fovCircle, 9999)
new("UIStroke", { Color = theme.accent, Thickness = 1.5, Transparency = 0.2 }, fovCircle)

-- bottom-left hint
new("TextLabel", {
	AnchorPoint = Vector2.new(0, 1),
	Position = UDim2.new(0, 14, 1, -12),
	Size = UDim2.fromOffset(420, 16),
	BackgroundTransparency = 1,
	Text = "CTRL  Menu     F  Fly     N  Noclip     RMB  Aim",
	TextColor3 = theme.text,
	TextTransparency = 0.5,
	TextXAlignment = Enum.TextXAlignment.Left,
	Font = Enum.Font.GothamMedium,
	TextSize = 12,
}, gui)

---------------------------------------------------------------------
-- Toast notifications
---------------------------------------------------------------------
local currentToast

local function toast(text, on)
	if currentToast then
		currentToast:Destroy()
	end
	local t = new("CanvasGroup", {
		AnchorPoint = Vector2.new(0.5, 1),
		Position = UDim2.new(0.5, 0, 1, -50),
		Size = UDim2.fromOffset(220, 38),
		BackgroundColor3 = theme.bg,
		GroupTransparency = 1,
	}, gui)
	corner(t, 10)
	new("UIStroke", { Color = on == false and theme.off or theme.accent, Thickness = 1.5 }, t)
	new("TextLabel", {
		Size = UDim2.fromScale(1, 1),
		BackgroundTransparency = 1,
		Text = text,
		TextColor3 = theme.text,
		Font = Enum.Font.GothamBold,
		TextSize = 14,
	}, t)
	currentToast = t
	tween(t, 0.2, { GroupTransparency = 0, Position = UDim2.new(0.5, 0, 1, -60) })
	task.delay(1.6, function()
		if t.Parent then
			tween(t, 0.3, { GroupTransparency = 1 })
			task.delay(0.35, function()
				if t.Parent then
					t:Destroy()
				end
			end)
		end
	end)
end

---------------------------------------------------------------------
-- Main window
---------------------------------------------------------------------
local main = new("CanvasGroup", {
	Name = "Main",
	AnchorPoint = Vector2.new(0.5, 0.5),
	Position = UDim2.fromScale(0.5, 0.5),
	Size = UDim2.fromOffset(500, 390),
	BackgroundColor3 = theme.bg,
	BorderSizePixel = 0,
	GroupTransparency = 1,
	Visible = false,
}, gui)
corner(main, 14)
new("UIStroke", { Color = Color3.fromRGB(46, 46, 62), Thickness = 1.5 }, main)
local mainScale = new("UIScale", { Scale = 0.92 }, main)

-- header
local header = new("Frame", {
	Size = UDim2.new(1, 0, 0, 44),
	BackgroundTransparency = 1,
	Active = true,
}, main)

new("TextLabel", {
	Position = UDim2.fromOffset(16, 0),
	Size = UDim2.fromOffset(100, 44),
	BackgroundTransparency = 1,
	Text = "NOVA",
	TextColor3 = theme.text,
	TextXAlignment = Enum.TextXAlignment.Left,
	Font = Enum.Font.GothamBlack,
	TextSize = 20,
}, header)

new("TextLabel", {
	AnchorPoint = Vector2.new(1, 0),
	Position = UDim2.new(1, -16, 0, 0),
	Size = UDim2.fromOffset(200, 44),
	BackgroundTransparency = 1,
	Text = "CTRL to hide  -  drag to move",
	TextColor3 = theme.sub,
	TextXAlignment = Enum.TextXAlignment.Right,
	Font = Enum.Font.Gotham,
	TextSize = 12,
}, header)

local accentLine = new("Frame", {
	Position = UDim2.fromOffset(0, 44),
	Size = UDim2.new(1, 0, 0, 2),
	BackgroundColor3 = Color3.new(1, 1, 1),
	BorderSizePixel = 0,
}, main)
new("UIGradient", {
	Color = ColorSequence.new(theme.accent, theme.accent2),
}, accentLine)

-- window dragging
do
	local dragging, dragStart, startPos = false, nil, nil
	header.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
		end
	end)
	UserInputService.InputChanged:Connect(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)
	UserInputService.InputEnded:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = false
		end
	end)
end

-- sidebar + pages
local sidebar = new("Frame", {
	Position = UDim2.fromOffset(0, 46),
	Size = UDim2.new(0, 120, 1, -46),
	BackgroundColor3 = theme.side,
	BorderSizePixel = 0,
}, main)
new("UIListLayout", { Padding = UDim.new(0, 4), SortOrder = Enum.SortOrder.LayoutOrder }, sidebar)
new("UIPadding", {
	PaddingTop = UDim.new(0, 10), PaddingLeft = UDim.new(0, 8), PaddingRight = UDim.new(0, 8),
}, sidebar)

local pagesHolder = new("Frame", {
	Position = UDim2.fromOffset(128, 54),
	Size = UDim2.new(1, -136, 1, -62),
	BackgroundTransparency = 1,
}, main)

local pages, tabs = {}, {}

local function selectTab(name)
	for tabName, page in pairs(pages) do
		page.Visible = (tabName == name)
		local btn = tabs[tabName]
		tween(btn, 0.15, {
			BackgroundTransparency = tabName == name and 0.7 or 1,
			TextColor3 = tabName == name and theme.text or theme.sub,
		})
	end
end

local function createPage(name)
	local btn = new("TextButton", {
		Size = UDim2.new(1, 0, 0, 36),
		BackgroundColor3 = theme.accent,
		BackgroundTransparency = 1,
		Text = "  " .. name,
		TextColor3 = theme.sub,
		TextXAlignment = Enum.TextXAlignment.Left,
		Font = Enum.Font.GothamMedium,
		TextSize = 14,
		AutoButtonColor = false,
		LayoutOrder = nextOrder(),
	}, sidebar)
	corner(btn, 8)
	btn.MouseButton1Click:Connect(function()
		selectTab(name)
	end)
	tabs[name] = btn

	local page = new("ScrollingFrame", {
		Size = UDim2.fromScale(1, 1),
		BackgroundTransparency = 1,
		BorderSizePixel = 0,
		ScrollBarThickness = 3,
		ScrollBarImageColor3 = theme.accent,
		CanvasSize = UDim2.new(),
		AutomaticCanvasSize = Enum.AutomaticSize.Y,
		Visible = false,
	}, pagesHolder)
	new("UIListLayout", { Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder }, page)
	new("UIPadding", { PaddingRight = UDim.new(0, 8), PaddingBottom = UDim.new(0, 8) }, page)
	pages[name] = page
	return page
end

---------------------------------------------------------------------
-- UI widgets
---------------------------------------------------------------------
local toggleSetters = {}

local function makeRow(page, height)
	local f = new("Frame", {
		Size = UDim2.new(1, 0, 0, height),
		BackgroundColor3 = theme.row,
		BorderSizePixel = 0,
		LayoutOrder = nextOrder(),
	}, page)
	corner(f, 8)
	return f
end

local function addSection(page, text)
	new("TextLabel", {
		Size = UDim2.new(1, 0, 0, 20),
		BackgroundTransparency = 1,
		Text = string.upper(text),
		TextColor3 = theme.accent2,
		TextXAlignment = Enum.TextXAlignment.Left,
		Font = Enum.Font.GothamBold,
		TextSize = 11,
		LayoutOrder = nextOrder(),
	}, page)
end

local function addLabel(page, text)
	new("TextLabel", {
		Size = UDim2.new(1, 0, 0, 30),
		BackgroundTransparency = 1,
		Text = text,
		TextColor3 = theme.sub,
		TextWrapped = true,
		TextXAlignment = Enum.TextXAlignment.Left,
		TextYAlignment = Enum.TextYAlignment.Top,
		Font = Enum.Font.Gotham,
		TextSize = 12,
		LayoutOrder = nextOrder(),
	}, page)
end

local function addToggle(page, label, key, hotkey, callback)
	local f = makeRow(page, 38)
	new("TextLabel", {
		Position = UDim2.fromOffset(12, 0),
		Size = UDim2.new(1, -110, 1, 0),
		BackgroundTransparency = 1,
		Text = label,
		TextColor3 = theme.text,
		TextXAlignment = Enum.TextXAlignment.Left,
		Font = Enum.Font.GothamMedium,
		TextSize = 14,
	}, f)

	if hotkey then
		local chip = new("TextLabel", {
			AnchorPoint = Vector2.new(1, 0.5),
			Position = UDim2.new(1, -62, 0.5, 0),
			Size = UDim2.fromOffset(24, 20),
			BackgroundColor3 = theme.off,
			Text = hotkey,
			TextColor3 = theme.text,
			Font = Enum.Font.GothamBold,
			TextSize = 11,
		}, f)
		corner(chip, 5)
	end

	local sw = new("Frame", {
		AnchorPoint = Vector2.new(1, 0.5),
		Position = UDim2.new(1, -12, 0.5, 0),
		Size = UDim2.fromOffset(42, 22),
		BackgroundColor3 = theme.off,
	}, f)
	corner(sw, 11)
	local knob = new("Frame", {
		AnchorPoint = Vector2.new(0, 0.5),
		Position = UDim2.new(0, 3, 0.5, 0),
		Size = UDim2.fromOffset(16, 16),
		BackgroundColor3 = Color3.new(1, 1, 1),
	}, sw)
	corner(knob, 8)

	local btn = new("TextButton", {
		Size = UDim2.fromScale(1, 1),
		BackgroundTransparency = 1,
		Text = "",
	}, f)

	local function render()
		local on = settings[key]
		tween(sw, 0.15, { BackgroundColor3 = on and theme.accent or theme.off })
		tween(knob, 0.15, { Position = on and UDim2.new(1, -19, 0.5, 0) or UDim2.new(0, 3, 0.5, 0) })
	end

	local function set(value)
		settings[key] = value
		render()
		if callback then
			callback(value)
		end
	end

	btn.MouseButton1Click:Connect(function()
		set(not settings[key])
	end)
	toggleSetters[key] = set
	render()
end

local function addSlider(page, label, key, min, max, decimals, suffix)
	local f = makeRow(page, 52)
	new("TextLabel", {
		Position = UDim2.fromOffset(12, 6),
		Size = UDim2.new(1, -90, 0, 18),
		BackgroundTransparency = 1,
		Text = label,
		TextColor3 = theme.text,
		TextXAlignment = Enum.TextXAlignment.Left,
		Font = Enum.Font.GothamMedium,
		TextSize = 14,
	}, f)
	local valueLabel = new("TextLabel", {
		AnchorPoint = Vector2.new(1, 0),
		Position = UDim2.new(1, -12, 0, 6),
		Size = UDim2.fromOffset(80, 18),
		BackgroundTransparency = 1,
		TextColor3 = theme.accent2,
		TextXAlignment = Enum.TextXAlignment.Right,
		Font = Enum.Font.GothamBold,
		TextSize = 13,
	}, f)

	local bar = new("Frame", {
		Position = UDim2.fromOffset(12, 36),
		Size = UDim2.new(1, -24, 0, 6),
		BackgroundColor3 = theme.off,
		BorderSizePixel = 0,
	}, f)
	corner(bar, 3)
	local fill = new("Frame", {
		Size = UDim2.fromScale(0, 1),
		BackgroundColor3 = theme.accent,
		BorderSizePixel = 0,
	}, bar)
	corner(fill, 3)
	new("UIGradient", { Color = ColorSequence.new(theme.accent, theme.accent2) }, fill)
	local knob = new("Frame", {
		AnchorPoint = Vector2.new(0.5, 0.5),
		Position = UDim2.fromScale(0, 0.5),
		Size = UDim2.fromOffset(14, 14),
		BackgroundColor3 = Color3.new(1, 1, 1),
	}, bar)
	corner(knob, 7)

	local function update(value)
		local mult = 10 ^ decimals
		value = math.floor(math.clamp(value, min, max) * mult + 0.5) / mult
		settings[key] = value
		local alpha = (value - min) / (max - min)
		fill.Size = UDim2.fromScale(alpha, 1)
		knob.Position = UDim2.fromScale(alpha, 0.5)
		valueLabel.Text = tostring(value) .. (suffix or "")
	end
	update(settings[key])

	local dragging = false
	local function fromX(x)
		local alpha = math.clamp((x - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1)
		update(min + (max - min) * alpha)
	end
	bar.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = true
			fromX(input.Position.X)
		end
	end)
	UserInputService.InputChanged:Connect(function(input)
		if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
			fromX(input.Position.X)
		end
	end)
	UserInputService.InputEnded:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = false
		end
	end)
end

local function addCycle(page, label, key, options)
	local f = makeRow(page, 38)
	new("TextLabel", {
		Position = UDim2.fromOffset(12, 0),
		Size = UDim2.new(1, -110, 1, 0),
		BackgroundTransparency = 1,
		Text = label,
		TextColor3 = theme.text,
		TextXAlignment = Enum.TextXAlignment.Left,
		Font = Enum.Font.GothamMedium,
		TextSize = 14,
	}, f)
	local btn = new("TextButton", {
		AnchorPoint = Vector2.new(1, 0.5),
		Position = UDim2.new(1, -12, 0.5, 0),
		Size = UDim2.fromOffset(80, 24),
		BackgroundColor3 = theme.accent,
		Text = settings[key],
		TextColor3 = Color3.new(1, 1, 1),
		Font = Enum.Font.GothamBold,
		TextSize = 12,
		AutoButtonColor = true,
	}, f)
	corner(btn, 6)
	btn.MouseButton1Click:Connect(function()
		local index = table.find(options, settings[key]) or 1
		index = index % #options + 1
		settings[key] = options[index]
		btn.Text = options[index]
	end)
end

---------------------------------------------------------------------
-- Toast helper for state changes
---------------------------------------------------------------------
local function stateToast(name)
	return function(on)
		toast(name .. ": " .. (on and "ON" or "OFF"), on)
	end
end

---------------------------------------------------------------------
-- Build pages
---------------------------------------------------------------------
local combat = createPage("Combat")
local visuals = createPage("Visuals")
local movement = createPage("Movement")

addSection(combat, "Aimbot")
addToggle(combat, "Aimbot (hold RMB)", "Aim")
addToggle(combat, "Auto shoot", "AutoShoot")
addToggle(combat, "Team check", "TeamCheck")
addToggle(combat, "Wall check", "WallCheck")
addCycle(combat, "Aim part", "AimPart", { "Head", "Body" })
addSection(combat, "Tuning")
addToggle(combat, "Show FOV circle", "ShowFOV")
addSlider(combat, "Aim FOV", "FOV", 30, 600, 0, " px")
addSlider(combat, "Smoothness", "Smooth", 0.05, 1, 2, "")
addSlider(combat, "Max distance", "MaxDistance", 50, 3000, 0, " st")

addSection(visuals, "ESP")
addToggle(visuals, "ESP (through walls)", "ESP")
addToggle(visuals, "Names", "ShowNames")
addToggle(visuals, "Health bars", "ShowHealth")
addToggle(visuals, "Distance", "ShowDistance")
addSection(visuals, "Camera")
addSlider(visuals, "Camera FOV", "CameraFOV", 40, 120, 0, "Β°")

addSection(movement, "Fly")
addToggle(movement, "Fly", "Fly", "F", stateToast("Fly"))
addSlider(movement, "Fly speed", "FlySpeed", 10, 300, 0, "")
addLabel(movement, "WASD to move, Space to go up, Shift to go down.")
addSection(movement, "Collision")
addToggle(movement, "Noclip", "Noclip", "N", stateToast("Noclip"))

selectTab("Combat")

---------------------------------------------------------------------
-- Open / close menu (CTRL)
---------------------------------------------------------------------
local menuOpen = false

local function setMenu(open)
	menuOpen = open
	modal.Modal = open
	if open then
		main.Visible = true
		tween(main, 0.2, { GroupTransparency = 0 })
		tween(mainScale, 0.2, { Scale = 1 })
	else
		tween(main, 0.15, { GroupTransparency = 1 })
		tween(mainScale, 0.15, { Scale = 0.92 })
		task.delay(0.17, function()
			if not menuOpen then
				main.Visible = false
			end
		end)
	end
end

UserInputService.InputBegan:Connect(function(input, processed)
	if input.KeyCode == Enum.KeyCode.LeftControl or input.KeyCode == Enum.KeyCode.RightControl then
		setMenu(not menuOpen)
		return
	end
	if processed then
		return
	end
	if input.KeyCode == Enum.KeyCode.F then
		toggleSetters.Fly(not settings.Fly)
	elseif input.KeyCode == Enum.KeyCode.N then
		toggleSetters.Noclip(not settings.Noclip)
	end
end)

---------------------------------------------------------------------
-- ESP
---------------------------------------------------------------------
local espObjects = {}

local function destroyEsp(plr)
	local o = espObjects[plr]
	if o then
		o.Highlight:Destroy()
		o.Billboard:Destroy()
		espObjects[plr] = nil
	end
end

local function createEsp(plr, char)
	local head = char:FindFirstChild("Head")
	if not head then
		return nil
	end

	local highlight = new("Highlight", {
		Name = "NovaHighlight",
		Adornee = char,
		DepthMode = Enum.HighlightDepthMode.AlwaysOnTop,
		FillTransparency = 0.65,
		OutlineTransparency = 0,
		OutlineColor = Color3.new(1, 1, 1),
	}, char)

	local billboard = new("BillboardGui", {
		Name = "NovaBillboard",
		Adornee = head,
		AlwaysOnTop = true,
		Size = UDim2.fromOffset(150, 48),
		StudsOffset = Vector3.new(0, 2.8, 0),
	}, char)

	local nameLabel = new("TextLabel", {
		Size = UDim2.new(1, 0, 0, 18),
		BackgroundTransparency = 1,
		TextColor3 = Color3.new(1, 1, 1),
		TextStrokeTransparency = 0.4,
		Font = Enum.Font.GothamBold,
		TextSize = 14,
	}, billboard)

	local healthBg = new("Frame", {
		Position = UDim2.new(0.2, 0, 0, 22),
		Size = UDim2.new(0.6, 0, 0, 5),
		BackgroundColor3 = Color3.fromRGB(20, 20, 20),
		BorderSizePixel = 0,
	}, billboard)
	corner(healthBg, 3)
	local healthFill = new("Frame", {
		Size = UDim2.fromScale(1, 1),
		BackgroundColor3 = theme.friend,
		BorderSizePixel = 0,
	}, healthBg)
	corner(healthFill, 3)

	local distLabel = new("TextLabel", {
		Position = UDim2.fromOffset(0, 30),
		Size = UDim2.new(1, 0, 0, 16),
		BackgroundTransparency = 1,
		TextColor3 = Color3.fromRGB(220, 220, 230),
		TextStrokeTransparency = 0.5,
		Font = Enum.Font.Gotham,
		TextSize = 12,
	}, billboard)

	local o = {
		Char = char,
		Highlight = highlight,
		Billboard = billboard,
		Name = nameLabel,
		HealthBg = healthBg,
		HealthFill = healthFill,
		Dist = distLabel,
	}
	espObjects[plr] = o
	return o
end

local function isEnemy(plr)
	return plr.Team == nil or plr.Team ~= player.Team
end

local function updateEsp()
	local myChar = player.Character
	local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")

	for _, plr in ipairs(Players:GetPlayers()) do
		if plr ~= player then
			local char = plr.Character
			local hum = char and char:FindFirstChildOfClass("Humanoid")
			local root = char and char:FindFirstChild("HumanoidRootPart")
			local dist = (root and myRoot) and (root.Position - myRoot.Position).Magnitude or 0

			local show = settings.ESP
				and hum ~= nil
				and root ~= nil
				and hum.Health > 0
				and dist <= settings.MaxDistance
				and (not settings.TeamCheck or isEnemy(plr))

			if show then
				local o = espObjects[plr]
				if o and o.Char ~= char then
					destroyEsp(plr)
					o = nil
				end
				if not o then
					o = createEsp(plr, char)
				end
				if o then
					local color = isEnemy(plr) and theme.enemy or theme.friend
					o.Highlight.FillColor = color
					o.Name.Visible = settings.ShowNames
					o.Name.Text = plr.DisplayName
					o.HealthBg.Visible = settings.ShowHealth
					local hp = math.clamp(hum.Health / math.max(hum.MaxHealth, 1), 0, 1)
					o.HealthFill.Size = UDim2.fromScale(hp, 1)
					o.HealthFill.BackgroundColor3 = theme.enemy:Lerp(theme.friend, hp)
					o.Dist.Visible = settings.ShowDistance
					o.Dist.Text = string.format("%d studs", dist)
				end
			else
				destroyEsp(plr)
			end
		end
	end
end

Players.PlayerRemoving:Connect(destroyEsp)

---------------------------------------------------------------------
-- Aimbot
---------------------------------------------------------------------
local function isVisible(char, part)
	local params = RaycastParams.new()
	params.FilterType = Enum.RaycastFilterType.Exclude
	params.FilterDescendantsInstances = { player.Character }
	local origin = camera.CFrame.Position
	local result = workspace:Raycast(origin, part.Position - origin, params)
	return result == nil or result.Instance:IsDescendantOf(char)
end

local function getTarget()
	local center = camera.ViewportSize / 2
	local myRoot = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
	local partName = settings.AimPart == "Head" and "Head" or "HumanoidRootPart"
	local best, bestDist = nil, settings.FOV

	for _, plr in ipairs(Players:GetPlayers()) do
		if plr ~= player and (not settings.TeamCheck or isEnemy(plr)) then
			local char = plr.Character
			local part = char and (char:FindFirstChild(partName) or char:FindFirstChild("HumanoidRootPart"))
			local hum = char and char:FindFirstChildOfClass("Humanoid")
			if part and hum and hum.Health > 0 then
				local inRange = not myRoot or (part.Position - myRoot.Position).Magnitude <= settings.MaxDistance
				if inRange then
					local screenPos, onScreen = camera:WorldToViewportPoint(part.Position)
					if onScreen then
						local d = (Vector2.new(screenPos.X, screenPos.Y) - center).Magnitude
						if d < bestDist and (not settings.WallCheck or isVisible(char, part)) then
							best, bestDist = part, d
						end
					end
				end
			end
		end
	end
	return best
end

local lastShot = 0

local function updateAim()
	if not settings.Aim or menuOpen then
		return
	end
	if not UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then
		return
	end

	local target = getTarget()
	if target then
		local goal = CFrame.new(camera.CFrame.Position, target.Position)
		camera.CFrame = camera.CFrame:Lerp(goal, settings.Smooth)

		if settings.AutoShoot and os.clock() - lastShot > 0.1 then
			local tool = player.Character and player.Character:FindFirstChildOfClass("Tool")
			if tool then
				lastShot = os.clock()
				tool:Activate()
			end
		end
	end
end

---------------------------------------------------------------------
-- Per-frame update (runs right after the default camera script)
---------------------------------------------------------------------
RunService:BindToRenderStep("NovaUpdate", Enum.RenderPriority.Camera.Value + 1, function()
	camera = workspace.CurrentCamera
	camera.FieldOfView = settings.CameraFOV

	fovCircle.Visible = settings.Aim and settings.ShowFOV
	fovCircle.Size = UDim2.fromOffset(settings.FOV * 2, settings.FOV * 2)
	fovCircle.Position = UDim2.fromOffset(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)

	updateEsp()
	updateAim()
end)

---------------------------------------------------------------------
-- Fly
---------------------------------------------------------------------
local flyWasActive = false

RunService.Heartbeat:Connect(function()
	local char = player.Character
	local root = char and char:FindFirstChild("HumanoidRootPart")
	local hum = char and char:FindFirstChildOfClass("Humanoid")
	if not (root and hum) then
		return
	end

	if settings.Fly then
		flyWasActive = true
		hum.PlatformStand = true

		local cf = camera.CFrame
		local dir = Vector3.zero
		if not UserInputService:GetFocusedTextBox() then
			if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir += cf.LookVector end
			if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir -= cf.LookVector end
			if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir += cf.RightVector end
			if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir -= cf.RightVector end
			if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir += Vector3.yAxis end
			if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then dir -= Vector3.yAxis end
		end
		if dir.Magnitude > 0 then
			dir = dir.Unit
		end

		root.AssemblyLinearVelocity = dir * settings.FlySpeed
		root.AssemblyAngularVelocity = Vector3.zero

		local flat = Vector3.new(cf.LookVector.X, 0, cf.LookVector.Z)
		if flat.Magnitude > 0.001 then
			root.CFrame = CFrame.lookAt(root.Position, root.Position + flat)
		end
	elseif flyWasActive then
		flyWasActive = false
		hum.PlatformStand = false
		root.AssemblyLinearVelocity = Vector3.zero
	end
end)

---------------------------------------------------------------------
-- Noclip
---------------------------------------------------------------------
local noclipWasActive = false
local collidableParts = { "HumanoidRootPart", "Head", "Torso", "UpperTorso", "LowerTorso" }

RunService.Stepped:Connect(function()
	local char = player.Character
	if not char then
		return
	end

	if settings.Noclip then
		noclipWasActive = true
		for _, part in ipairs(char:GetDescendants()) do
			if part:IsA("BasePart") then
				part.CanCollide = false
			end
		end
	elseif noclipWasActive then
		noclipWasActive = false
		for _, name in ipairs(collidableParts) do
			local part = char:FindFirstChild(name)
			if part and part:IsA("BasePart") then
				part.CanCollide = true
			end
		end
	end
end)

---------------------------------------------------------------------
toast("Press CTRL to open the menu")

end -- loadNova

---------------------------------------------------------------------
-- Key gate: the menu does NOT start without the correct key
---------------------------------------------------------------------
local KEY = "trolisgoat"

do
	local Players = game:GetService("Players")
	local TweenService = game:GetService("TweenService")
	local plr = Players.LocalPlayer

	local C = {
		bg = Color3.fromRGB(16, 16, 22),
		row = Color3.fromRGB(28, 28, 38),
		accent = Color3.fromRGB(124, 92, 255),
		accent2 = Color3.fromRGB(64, 180, 255),
		text = Color3.fromRGB(236, 236, 244),
		sub = Color3.fromRGB(140, 140, 158),
		bad = Color3.fromRGB(255, 80, 80),
		good = Color3.fromRGB(70, 220, 120),
	}

	local function make(class, props, parent)
		local inst = Instance.new(class)
		for k, v in pairs(props) do
			inst[k] = v
		end
		inst.Parent = parent
		return inst
	end
	local function round(inst, r)
		make("UICorner", { CornerRadius = UDim.new(0, r) }, inst)
	end

	local keyGui = make("ScreenGui", {
		Name = "NovaKey",
		ResetOnSpawn = false,
		IgnoreGuiInset = true,
		DisplayOrder = 200,
	}, plr:WaitForChild("PlayerGui"))

	-- frees the mouse cursor while the key window is open
	make("TextButton", {
		Size = UDim2.fromOffset(0, 0),
		BackgroundTransparency = 1,
		Text = "",
		Modal = true,
	}, keyGui)

	local card = make("CanvasGroup", {
		AnchorPoint = Vector2.new(0.5, 0.5),
		Position = UDim2.fromScale(0.5, 0.5),
		Size = UDim2.fromOffset(340, 200),
		BackgroundColor3 = C.bg,
		BorderSizePixel = 0,
	}, keyGui)
	round(card, 14)
	make("UIStroke", { Color = Color3.fromRGB(46, 46, 62), Thickness = 1.5 }, card)

	make("TextLabel", {
		Position = UDim2.fromOffset(0, 14),
		Size = UDim2.new(1, 0, 0, 30),
		BackgroundTransparency = 1,
		Text = "NOVA",
		TextColor3 = C.text,
		Font = Enum.Font.GothamBlack,
		TextSize = 24,
	}, card)
	make("TextLabel", {
		Position = UDim2.fromOffset(0, 44),
		Size = UDim2.new(1, 0, 0, 18),
		BackgroundTransparency = 1,
		Text = "Enter your key to continue",
		TextColor3 = C.sub,
		Font = Enum.Font.Gotham,
		TextSize = 13,
	}, card)

	local line = make("Frame", {
		Position = UDim2.fromOffset(0, 0),
		Size = UDim2.new(1, 0, 0, 3),
		BackgroundColor3 = Color3.new(1, 1, 1),
		BorderSizePixel = 0,
	}, card)
	make("UIGradient", { Color = ColorSequence.new(C.accent, C.accent2) }, line)

	local box = make("TextBox", {
		Position = UDim2.fromOffset(20, 78),
		Size = UDim2.new(1, -40, 0, 36),
		BackgroundColor3 = C.row,
		PlaceholderText = "Key",
		PlaceholderColor3 = C.sub,
		Text = "",
		TextColor3 = C.text,
		Font = Enum.Font.GothamMedium,
		TextSize = 15,
		ClearTextOnFocus = false,
	}, card)
	round(box, 8)

	local status = make("TextLabel", {
		Position = UDim2.fromOffset(20, 118),
		Size = UDim2.new(1, -40, 0, 16),
		BackgroundTransparency = 1,
		Text = "",
		TextColor3 = C.bad,
		Font = Enum.Font.GothamMedium,
		TextSize = 12,
	}, card)

	local button = make("TextButton", {
		Position = UDim2.fromOffset(20, 142),
		Size = UDim2.new(1, -40, 0, 38),
		BackgroundColor3 = C.accent,
		Text = "Unlock",
		TextColor3 = Color3.new(1, 1, 1),
		Font = Enum.Font.GothamBold,
		TextSize = 15,
	}, card)
	round(button, 8)

	local unlocked = false

	local function shake()
		local base = card.Position
		for _, dx in ipairs({ 10, -10, 6, -6, 0 }) do
			TweenService:Create(card, TweenInfo.new(0.05), {
				Position = UDim2.new(base.X.Scale, base.X.Offset + dx, base.Y.Scale, base.Y.Offset),
			}):Play()
			task.wait(0.05)
		end
	end

	local function submit()
		if unlocked then
			return
		end
		local entered = string.lower((box.Text:gsub("%s+", "")))
		if entered == KEY then
			unlocked = true
			status.TextColor3 = C.good
			status.Text = "Access granted"
			task.wait(0.4)
			TweenService:Create(card, TweenInfo.new(0.25), { GroupTransparency = 1 }):Play()
			task.wait(0.3)
			keyGui:Destroy()
			loadNova()
		else
			status.TextColor3 = C.bad
			status.Text = "Wrong key"
			box.Text = ""
			shake()
		end
	end

	button.MouseButton1Click:Connect(submit)
	box.FocusLost:Connect(function(enterPressed)
		if enterPressed then
			submit()
		end
	end)
end

Features & Information

aimbot esp fly noclip
#the bronx#aimbot#eps

Community Comments (0)

No comments yet for this script.

More Scripts for πŸ‘‘THA BRONX 3πŸ‘‘