local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local NPC_FOLDER = workspace:WaitForChild("NPCs") local highlightEnabled = false local aimlockEnabled = false local guiVisible = true local HIGHLIGHT_NAME = "NoWrongSoundHighlight" local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "NPCToolsGUI" ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 200, 0, 120) MainFrame.Position = UDim2.new(0, 20, 0, 20) MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) MainFrame.BorderSizePixel = 0 MainFrame.Parent = ScreenGui MainFrame.Active = true MainFrame.Draggable = true local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 20) Title.Position = UDim2.new(0, 0, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "NPC Tools" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.Font = Enum.Font.SourceSansBold Title.TextSize = 18 Title.Parent = MainFrame local HighlightButton = Instance.new("TextButton") HighlightButton.Size = UDim2.new(0, 160, 0, 40) HighlightButton.Position = UDim2.new(0, 20, 0, 30) HighlightButton.BackgroundColor3 = Color3.fromRGB(255, 50, 50) HighlightButton.TextColor3 = Color3.fromRGB(255, 255, 255) HighlightButton.Text = "Highlight: OFF" HighlightButton.Parent = MainFrame local AimButton = Instance.new("TextButton") AimButton.Size = UDim2.new(0, 160, 0, 40) AimButton.Position = UDim2.new(0, 20, 0, 75) AimButton.BackgroundColor3 = Color3.fromRGB(50, 50, 255) AimButton.TextColor3 = Color3.fromRGB(255, 255, 255) AimButton.Text = "Aimlock: OFF" AimButton.Parent = MainFrame local HideButton = Instance.new("TextButton") HideButton.Size = UDim2.new(0, 50, 0, 20) HideButton.Position = UDim2.new(1, -55, 0, 0) HideButton.BackgroundColor3 = Color3.fromRGB(100, 100, 100) HideButton.TextColor3 = Color3.fromRGB(255, 255, 255) HideButton.Text = "Hide" HideButton.Parent = MainFrame local function qualifies(model) if not model:IsA("Model") then return false end for _, d in ipairs(model:GetDescendants()) do if d:IsA("Sound") and d.Name == "Wrong" then return false end end return true end local function addHighlight(model) if model:FindFirstChild(HIGHLIGHT_NAME) then return end local highlight = Instance.new("Highlight") highlight.Name = HIGHLIGHT_NAME highlight.Adornee = model highlight.FillColor = Color3.fromRGB(255, 0, 0) highlight.OutlineColor = Color3.fromRGB(255, 255, 255) highlight.FillTransparency = 0.45 highlight.Parent = model end local function removeHighlight(model) local h = model:FindFirstChild(HIGHLIGHT_NAME) if h then h:Destroy() end end local function updateModel(model) if highlightEnabled and qualifies(model) then addHighlight(model) else removeHighlight(model) end end local function watchModel(model) if not model:IsA("Model") then return end updateModel(model) model.DescendantAdded:Connect(function() updateModel(model) end) model.DescendantRemoving:Connect(function() updateModel(model) end) end for _, obj in ipairs(NPC_FOLDER:GetDescendants()) do if obj:IsA("Model") then watchModel(obj) end end NPC_FOLDER.DescendantAdded:Connect(function(obj) if obj:IsA("Model") then watchModel(obj) end end) local function getClosestNPC() local char = LocalPlayer.Character if not char or not char:FindFirstChild("HumanoidRootPart") then return nil end local hrp = char.HumanoidRootPart local closest local closestDist = math.huge for _, npc in ipairs(NPC_FOLDER:GetChildren()) do if npc:IsA("Model") and qualifies(npc) and npc:FindFirstChild("HumanoidRootPart") then local dist = (hrp.Position - npc.HumanoidRootPart.Position).Magnitude if dist < closestDist then closest = npc closestDist = dist end end end return closest end RunService.RenderStepped:Connect(function() if aimlockEnabled then local target = getClosestNPC() if target and target:FindFirstChild("HumanoidRootPart") then local camera = workspace.CurrentCamera local dir = (target.HumanoidRootPart.Position - camera.CFrame.Position).Unit camera.CFrame = CFrame.new(camera.CFrame.Position, camera.CFrame.Position + dir) end end end) HighlightButton.MouseButton1Click:Connect(function() highlightEnabled = not highlightEnabled HighlightButton.Text = "Highlight: " .. (highlightEnabled and "ON" or "OFF") for _, npc in ipairs(NPC_FOLDER:GetDescendants()) do if npc:IsA("Model") then updateModel(npc) end end end) AimButton.MouseButton1Click:Connect(function() aimlockEnabled = not aimlockEnabled AimButton.Text = "Aimlock: " .. (aimlockEnabled and "ON" or "OFF") end) HideButton.MouseButton1Click:Connect(function() guiVisible = not guiVisible MainFrame.Visible = guiVisible HideButton.Text = guiVisible and "Hide" or "Show" end)