local CoreGui = game:GetService("CoreGui") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local Mouse = LocalPlayer:GetMouse() --// Global Config local Config = { Combat = { Aimbot = false, SilentAim = false, FOV = 250, TargetPart = "Head" }, Visuals = { Box = false, Info = false, Tracers = false, FOV = false, Skeleton = false }, Theme = { Main = Color3.fromRGB(20, 20, 20), Accent = Color3.fromRGB(0, 255, 255) } } --========================================= --// 1. MOBILE UI SETUP --========================================= local MeowUI = Instance.new("ScreenGui", CoreGui) MeowUI.Name = "MeowHubMobile" MeowUI.ResetOnSpawn = false -- Open/Close Button (Draggable) local ToggleBtn = Instance.new("TextButton", MeowUI) ToggleBtn.Size = UDim2.new(0, 50, 0, 50) ToggleBtn.Position = UDim2.new(0, 10, 0, 10) ToggleBtn.BackgroundColor3 = Config.Theme.Main ToggleBtn.TextColor3 = Config.Theme.Accent ToggleBtn.Text = "MEOW" ToggleBtn.Font = Enum.Font.GothamBold ToggleBtn.TextSize = 14 Instance.new("UICorner", ToggleBtn).CornerRadius = UDim.new(1, 0) Instance.new("UIStroke", ToggleBtn).Color = Config.Theme.Accent -- Main Menu Frame local MainFrame = Instance.new("Frame", MeowUI) MainFrame.Size = UDim2.new(0, 220, 0, 340) -- Made slightly taller MainFrame.Position = UDim2.new(0.5, -110, 0.5, -170) MainFrame.BackgroundColor3 = Config.Theme.Main MainFrame.Visible = false Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 10) local FrameStroke = Instance.new("UIStroke", MainFrame) FrameStroke.Color = Config.Theme.Accent FrameStroke.Thickness = 2 local Title = Instance.new("TextLabel", MainFrame) Title.Size = UDim2.new(1, 0, 0, 40) Title.BackgroundTransparency = 1 Title.Text = "MEOW HUB V1.5" Title.TextColor3 = Config.Theme.Accent Title.Font = Enum.Font.GothamBlack Title.TextSize = 18 local ScrollList = Instance.new("ScrollingFrame", MainFrame) ScrollList.Size = UDim2.new(1, -20, 1, -50) ScrollList.Position = UDim2.new(0, 10, 0, 40) ScrollList.BackgroundTransparency = 1 ScrollList.ScrollBarThickness = 4 local Layout = Instance.new("UIListLayout", ScrollList) Layout.Padding = UDim.new(0, 5) ToggleBtn.MouseButton1Click:Connect(function() MainFrame.Visible = not MainFrame.Visible end) local function CreateToggleButton(Name, Category, Setting) local Btn = Instance.new("TextButton", ScrollList) Btn.Size = UDim2.new(1, 0, 0, 35) Btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) Btn.TextColor3 = Color3.fromRGB(255, 255, 255) Btn.Text = Name .. " : OFF" Btn.Font = Enum.Font.GothamSemibold Btn.TextSize = 14 Instance.new("UICorner", Btn).CornerRadius = UDim.new(0, 6) Btn.MouseButton1Click:Connect(function() Config[Category][Setting] = not Config[Category][Setting] if Config[Category][Setting] then Btn.BackgroundColor3 = Config.Theme.Accent Btn.TextColor3 = Color3.fromRGB(0, 0, 0) Btn.Text = Name .. " : ON" else Btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) Btn.TextColor3 = Color3.fromRGB(255, 255, 255) Btn.Text = Name .. " : OFF" end end) end CreateToggleButton("Aimbot Snap", "Combat", "Aimbot") CreateToggleButton("Silent Aim", "Combat", "SilentAim") CreateToggleButton("Show FOV", "Visuals", "FOV") CreateToggleButton("Box ESP", "Visuals", "Box") CreateToggleButton("Name/HP/Dist", "Visuals", "Info") CreateToggleButton("Tracers", "Visuals", "Tracers") CreateToggleButton("Skeleton ESP", "Visuals", "Skeleton") -- NEW SKELETON TOGGLE --========================================= --// 2. VISUALS (FOV, ESP, Tracers, Skeletons) --========================================= local FOVCircle = Instance.new("Frame", MeowUI) FOVCircle.Size = UDim2.new(0, Config.Combat.FOV * 2, 0, Config.Combat.FOV * 2) FOVCircle.AnchorPoint = Vector2.new(0.5, 0.5) FOVCircle.Position = UDim2.new(0.5, 0, 0.5, 0) FOVCircle.BackgroundTransparency = 1 local FOVStroke = Instance.new("UIStroke", FOVCircle) FOVStroke.Thickness = 1.5 FOVStroke.Color = Config.Theme.Accent Instance.new("UICorner", FOVCircle).CornerRadius = UDim.new(1, 0) -- Skeleton Bones Mapping local SkeletonBones = { -- R15 Rig {"Head", "UpperTorso"}, {"UpperTorso", "LowerTorso"}, {"UpperTorso", "LeftUpperArm"}, {"LeftUpperArm", "LeftLowerArm"}, {"LeftLowerArm", "LeftHand"}, {"UpperTorso", "RightUpperArm"}, {"RightUpperArm", "RightLowerArm"}, {"RightLowerArm", "RightHand"}, {"LowerTorso", "LeftUpperLeg"}, {"LeftUpperLeg", "LeftLowerLeg"}, {"LeftLowerLeg", "LeftFoot"}, {"LowerTorso", "RightUpperLeg"}, {"RightUpperLeg", "RightLowerLeg"}, {"RightLowerLeg", "RightFoot"}, -- R6 Fallback Rig {"Head", "Torso"}, {"Torso", "Left Arm"}, {"Torso", "Right Arm"}, {"Torso", "Left Leg"}, {"Torso", "Right Leg"} } local function HandleVisuals(P) local Bones = {} -- Pre-create the drawing lines to save memory for i = 1, #SkeletonBones do local Line = Drawing.new("Line") Line.Thickness = 1.5 Line.Color = Config.Theme.Accent Line.Transparency = 0.8 Line.Visible = false table.insert(Bones, Line) end local Tracer = Drawing.new("Line") Tracer.Thickness = 1 Tracer.Color = Config.Theme.Accent Tracer.Transparency = 0.6 Tracer.Visible = false local function Setup(Char) local Root = Char:WaitForChild("HumanoidRootPart", 10) local Hum = Char:WaitForChild("Humanoid", 10) local BGui = Instance.new("BillboardGui", Root) BGui.Size = UDim2.new(4, 0, 5.5, 0) BGui.AlwaysOnTop = true local Box = Instance.new("Frame", BGui) Box.Size = UDim2.new(1, 0, 1, 0) Box.BackgroundTransparency = 1 local S = Instance.new("UIStroke", Box) S.Color = Config.Theme.Accent S.Transparency = 0.5 local Info = Instance.new("TextLabel", BGui) Info.Size = UDim2.new(1, 0, 0, 40) Info.Position = UDim2.new(0, 0, -0.4, 0) Info.BackgroundTransparency = 1 Info.TextColor3 = Color3.new(1,1,1) Info.TextSize = 10 Info.Font = Enum.Font.Code RunService.RenderStepped:Connect(function() FOVCircle.Visible = Config.Visuals.FOV Box.Visible = Config.Visuals.Box Info.Visible = Config.Visuals.Info if Root and Root.Parent and Hum.Health > 0 then local Pos, OnScreen = Camera:WorldToViewportPoint(Root.Position) -- Info Logic if Config.Visuals.Info and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then local Dist = math.floor((Root.Position - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude) Info.Text = string.format("%s\n%s HP | %sm", P.Name, math.floor(Hum.Health), Dist) end -- Tracer Logic if OnScreen and Config.Visuals.Tracers then Tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y) Tracer.To = Vector2.new(Pos.X, Pos.Y) Tracer.Visible = true else Tracer.Visible = false end -- Skeleton Logic if Config.Visuals.Skeleton then for i, connection in ipairs(SkeletonBones) do local Part1 = Char:FindFirstChild(connection[1]) local Part2 = Char:FindFirstChild(connection[2]) if Part1 and Part2 then local P1, Vis1 = Camera:WorldToViewportPoint(Part1.Position) local P2, Vis2 = Camera:WorldToViewportPoint(Part2.Position) if Vis1 or Vis2 then Bones[i].From = Vector2.new(P1.X, P1.Y) Bones[i].To = Vector2.new(P2.X, P2.Y) Bones[i].Visible = true else Bones[i].Visible = false end else Bones[i].Visible = false end end else for _, line in pairs(Bones) do line.Visible = false end end else Tracer.Visible = false for _, line in pairs(Bones) do line.Visible = false end end end) end P.CharacterAdded:Connect(Setup) if P.Character then Setup(P.Character) end end for _, v in pairs(Players:GetPlayers()) do if v ~= LocalPlayer then HandleVisuals(v) end end Players.PlayerAdded:Connect(HandleVisuals) --========================================= --// 3. COMBAT LOGIC (Targeting & Silent Aim) --========================================= local function GetTarget() local Target, Closest = nil, Config.Combat.FOV local Center = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) for _, v in pairs(Players:GetPlayers()) do if v ~= LocalPlayer and v.Character and v.Character:FindFirstChild(Config.Combat.TargetPart) then if v.Team == LocalPlayer.Team then continue end local Hum = v.Character:FindFirstChildOfClass("Humanoid") if Hum and Hum.Health > 0 then local Part = v.Character[Config.Combat.TargetPart] local Pos, OnScreen = Camera:WorldToViewportPoint(Part.Position) if OnScreen then local Dist = (Vector2.new(Pos.X, Pos.Y) - Center).Magnitude if Dist < Closest then local RayP = RaycastParams.new() RayP.FilterType = Enum.RaycastFilterType.Exclude RayP.FilterDescendantsInstances = {LocalPlayer.Character, Camera} local Result = workspace:Raycast(Camera.CFrame.Position, (Part.Position - Camera.CFrame.Position), RayP) if Result and Result.Instance:IsDescendantOf(v.Character) then Target = v Closest = Dist end end end end end end return Target end -- Silent Aim (Mouse Hook) local OldIndex OldIndex = hookmetamethod(game, "__index", newcclosure(function(self, index) if Config.Combat.SilentAim and self == Mouse and (index == "Hit" or index == "Target") and not checkcaller() then local T = GetTarget() if T then local Part = T.Character[Config.Combat.TargetPart] return (index == "Hit" and Part.CFrame or Part) end end return OldIndex(self, index) end)) -- Aimbot Lock RunService.RenderStepped:Connect(function() if Config.Combat.Aimbot then local T = GetTarget() if T then Camera.CFrame = CFrame.new(Camera.CFrame.Position, T.Character[Config.Combat.TargetPart].Position) end end end)