-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] --========================================================-- -- GUBBY HUB -- -- Roblox Studio Panel -- -- SINGLE SCRIPT -- --========================================================-- local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local CAS = game:GetService("ContextActionService") local Lighting = game:GetService("Lighting") local TweenService = game:GetService("TweenService") local LP = Players.LocalPlayer local Camera = workspace.CurrentCamera local PlayerGui = LP:WaitForChild("PlayerGui") --========================================================-- -- SETTINGS --========================================================-- local S = { WalkSpeed = 16, JumpPower = 50, FlySpeed = 80, SpinSpeed = 20, Gravity = 196.2, FOV = 70, Aim = false, AimFOV = 180, AimSmooth = 0.25, AimPart = "Head", ESP = false, ESPNames = true, ESPDistance = true, ESPHealth = true, Noclip = false, Fly = false, InfiniteJump = false, Spin = false, Fullbright = false, Freecam = false, TeamCheck = false, VisibleCheck = false, } local Character local Humanoid local Root local function RefreshCharacter() Character = LP.Character if not Character then return end Humanoid = Character:FindFirstChildOfClass("Humanoid") Root = Character:FindFirstChild("HumanoidRootPart") end RefreshCharacter() LP.CharacterAdded:Connect(function() task.wait(0.5) RefreshCharacter() end) --========================================================-- -- GUI --========================================================-- local GUI = Instance.new("ScreenGui") GUI.Name = "GubbyHub" GUI.ResetOnSpawn = false GUI.IgnoreGuiInset = true GUI.DisplayOrder = 999 GUI.Parent = PlayerGui local Main = Instance.new("Frame") Main.Name = "Main" Main.Size = UDim2.fromOffset(430, 590) Main.Position = UDim2.new(0.5, -215, 0.5, -295) Main.BackgroundColor3 = Color3.fromRGB(11, 15, 13) Main.BorderSizePixel = 0 Main.Active = true Main.Draggable = true Main.Parent = GUI local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 18) MainCorner.Parent = Main local MainStroke = Instance.new("UIStroke") MainStroke.Color = Color3.fromRGB(67, 180, 94) MainStroke.Thickness = 2 MainStroke.Transparency = 0.15 MainStroke.Parent = Main --========================================================-- -- HEADER --========================================================-- local Header = Instance.new("Frame") Header.Size = UDim2.new(1, 0, 0, 62) Header.BackgroundColor3 = Color3.fromRGB(17, 25, 20) Header.BorderSizePixel = 0 Header.Parent = Main local HeaderCorner = Instance.new("UICorner") HeaderCorner.CornerRadius = UDim.new(0, 18) HeaderCorner.Parent = Header local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, -100, 0, 32) Title.Position = UDim2.fromOffset(18, 7) Title.BackgroundTransparency = 1 Title.Text = "GUBBY HUB" Title.TextColor3 = Color3.fromRGB(120, 255, 150) Title.Font = Enum.Font.GothamBlack Title.TextSize = 25 Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = Header local Status = Instance.new("TextLabel") Status.Size = UDim2.new(1, -100, 0, 20) Status.Position = UDim2.fromOffset(19, 37) Status.BackgroundTransparency = 1 Status.Text = "● READY" Status.TextColor3 = Color3.fromRGB(100, 220, 120) Status.Font = Enum.Font.Gotham Status.TextSize = 12 Status.TextXAlignment = Enum.TextXAlignment.Left Status.Parent = Header local CloseButton = Instance.new("TextButton") CloseButton.Size = UDim2.fromOffset(42, 42) CloseButton.Position = UDim2.new(1, -52, 0, 10) CloseButton.BackgroundColor3 = Color3.fromRGB(40, 55, 44) CloseButton.Text = "×" CloseButton.TextColor3 = Color3.new(1,1,1) CloseButton.TextSize = 27 CloseButton.Font = Enum.Font.GothamBold CloseButton.Parent = Header Instance.new("UICorner", CloseButton).CornerRadius = UDim.new(0, 10) --========================================================-- -- TAB BAR --========================================================-- local TabBar = Instance.new("ScrollingFrame") TabBar.Size = UDim2.new(1, -20, 0, 45) TabBar.Position = UDim2.fromOffset(10, 70) TabBar.BackgroundTransparency = 1 TabBar.BorderSizePixel = 0 TabBar.ScrollBarThickness = 0 TabBar.ScrollingDirection = Enum.ScrollingDirection.X TabBar.Parent = Main local TabLayout = Instance.new("UIListLayout") TabLayout.FillDirection = Enum.FillDirection.Horizontal TabLayout.Padding = UDim.new(0, 6) TabLayout.Parent = TabBar --========================================================-- -- CONTENT --========================================================-- local Content = Instance.new("ScrollingFrame") Content.Size = UDim2.new(1, -20, 1, -130) Content.Position = UDim2.fromOffset(10, 120) Content.BackgroundTransparency = 1 Content.BorderSizePixel = 0 Content.ScrollBarThickness = 5 Content.CanvasSize = UDim2.new() Content.Parent = Main local ContentLayout = Instance.new("UIListLayout") ContentLayout.Padding = UDim.new(0, 8) ContentLayout.Parent = Content ContentLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() Content.CanvasSize = UDim2.fromOffset( 0, ContentLayout.AbsoluteContentSize.Y + 15 ) end) local function ClearContent() for _, v in ipairs(Content:GetChildren()) do if v ~= ContentLayout then v:Destroy() end end end --========================================================-- -- UI HELPERS --========================================================-- local function AddButton(Text, Callback) local B = Instance.new("TextButton") B.Size = UDim2.new(1, -5, 0, 43) B.BackgroundColor3 = Color3.fromRGB(25, 36, 28) B.BorderSizePixel = 0 B.Text = Text B.TextColor3 = Color3.new(1,1,1) B.Font = Enum.Font.GothamBold B.TextSize = 14 B.AutoButtonColor = true B.Parent = Content Instance.new("UICorner", B).CornerRadius = UDim.new(0, 10) B.MouseButton1Click:Connect(function() Callback() end) return B end local function AddInput(Label, Value, Callback) local B = Instance.new("TextBox") B.Size = UDim2.new(1, -5, 0, 43) B.BackgroundColor3 = Color3.fromRGB(20, 29, 23) B.BorderSizePixel = 0 B.TextColor3 = Color3.new(1,1,1) B.PlaceholderColor3 = Color3.fromRGB(150,150,150) B.PlaceholderText = Label B.Text = tostring(Value) B.ClearTextOnFocus = false B.Font = Enum.Font.Gotham B.TextSize = 14 B.Parent = Content Instance.new("UICorner", B).CornerRadius = UDim.new(0, 10) B.FocusLost:Connect(function() local Number = tonumber(B.Text) if Number then Callback(Number) else B.Text = tostring(Value) end end) return B end local function AddToggle(Label, Setting, Callback) local B local function Update() B.Text = Label .. " [" .. (S[Setting] and "ON" or "OFF") .. "]" B.BackgroundColor3 = S[Setting] and Color3.fromRGB(35, 75, 43) or Color3.fromRGB(25, 36, 28) end B = AddButton("", function() S[Setting] = not S[Setting] Update() if Callback then Callback(S[Setting]) end end) Update() return B end local function AddSection(Text) local L = Instance.new("TextLabel") L.Size = UDim2.new(1, -5, 0, 30) L.BackgroundTransparency = 1 L.Text = " " .. Text L.TextColor3 = Color3.fromRGB(110, 230, 135) L.Font = Enum.Font.GothamBold L.TextSize = 15 L.TextXAlignment = Enum.TextXAlignment.Left L.Parent = Content end --========================================================-- -- ESP --========================================================-- local ESP = {} local function RemoveESP(Player) local Data = ESP[Player] if Data then for _, Object in pairs(Data) do if typeof(Object) == "Instance" then Object:Destroy() end end end ESP[Player] = nil end local function CreateESP(Player) if Player == LP then return end if not Player.Character then return end RemoveESP(Player) local CharacterModel = Player.Character local Highlight = Instance.new("Highlight") Highlight.Name = "GubbyESP" Highlight.FillTransparency = 0.65 Highlight.OutlineTransparency = 0 Highlight.Parent = CharacterModel local Billboard = Instance.new("BillboardGui") Billboard.Name = "GubbyESPInfo" Billboard.Size = UDim2.fromOffset(180, 65) Billboard.StudsOffset = Vector3.new(0, 3, 0) Billboard.AlwaysOnTop = true Billboard.Parent = CharacterModel:FindFirstChild("Head") or CharacterModel local Info = Instance.new("TextLabel") Info.Size = UDim2.fromScale(1,1) Info.BackgroundTransparency = 1 Info.TextColor3 = Color3.new(1,1,1) Info.TextStrokeTransparency = 0 Info.Font = Enum.Font.GothamBold Info.TextSize = 13 Info.Parent = Billboard local Head = CharacterModel:FindFirstChild("Head") local Connection Connection = RunService.RenderStepped:Connect(function() if not S.ESP or not Player.Parent or not CharacterModel.Parent or not Head or not Head.Parent then if Connection then Connection:Disconnect() end return end local Distance = 0 if Root then Distance = math.floor( (Root.Position - Head.Position).Magnitude ) end local HP = CharacterModel:FindFirstChildOfClass("Humanoid") local Health = HP and math.floor(HP.Health) or 0 local Text = "" if S.ESPNames then Text ..= Player.DisplayName .. "\n" end if S.ESPDistance then Text ..= Distance .. " studs" end if S.ESPHealth and HP then Text ..= "\nHP: " .. Health end Info.Text = Text end) ESP[Player] = { Highlight = Highlight, Billboard = Billboard, Connection = Connection } end local function UpdateESP() if not S.ESP then for Player in pairs(ESP) do RemoveESP(Player) end return end for _, Player in ipairs(Players:GetPlayers()) do CreateESP(Player) end end Players.PlayerAdded:Connect(function(Player) Player.CharacterAdded:Connect(function() task.wait(0.5) if S.ESP then CreateESP(Player) end end) end) Players.PlayerRemoving:Connect(function(Player) RemoveESP(Player) end) --========================================================-- -- AIM ASSIST --========================================================-- local FOVCircle = Instance.new("Frame") FOVCircle.Name = "AimFOV" FOVCircle.AnchorPoint = Vector2.new(0.5,0.5) FOVCircle.BackgroundTransparency = 1 FOVCircle.Size = UDim2.fromOffset(S.AimFOV * 2, S.AimFOV * 2) FOVCircle.Position = UDim2.fromScale(0.5,0.5) FOVCircle.Visible = false FOVCircle.Parent = GUI local FOVCorner = Instance.new("UICorner") FOVCorner.CornerRadius = UDim.new(1,0) FOVCorner.Parent = FOVCircle local FOVStroke = Instance.new("UIStroke") FOVStroke.Thickness = 1 FOVStroke.Color = Color3.fromRGB(100,255,140) FOVStroke.Transparency = 0.25 FOVStroke.Parent = FOVCircle local function IsVisible(Target) if not S.VisibleCheck then return true end if not Root then return false end local Origin = Camera.CFrame.Position local Direction = Target.Position - Origin local Params = RaycastParams.new() Params.FilterType = Enum.RaycastFilterType.Exclude Params.FilterDescendantsInstances = { Character } local Result = workspace:Raycast( Origin, Direction, Params ) if not Result then return true end return Result.Instance:IsDescendantOf(Target.Parent) end local function GetTarget() local Best local BestDistance = S.AimFOV local Center = Vector2.new( Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2 ) for _, Player in ipairs(Players:GetPlayers()) do if Player ~= LP and Player.Character then if S.TeamCheck and Player.Team == LP.Team then continue end local Target = Player.Character:FindFirstChild(S.AimPart) or Player.Character:FindFirstChild("Head") local TargetHumanoid = Player.Character:FindFirstChildOfClass("Humanoid") if Target and TargetHumanoid and TargetHumanoid.Health > 0 then local ScreenPos, Visible = Camera:WorldToViewportPoint(Target.Position) if Visible and IsVisible(Target) then local Distance = ( Vector2.new(ScreenPos.X, ScreenPos.Y) - Center ).Magnitude if Distance < BestDistance then BestDistance = Distance Best = Target end end end end end return Best end RunService.RenderStepped:Connect(function() FOVCircle.Size = UDim2.fromOffset(S.AimFOV * 2, S.AimFOV * 2) FOVCircle.Visible = S.Aim if not S.Aim then return end local Target = GetTarget() if Target then local Desired = CFrame.lookAt( Camera.CFrame.Position, Target.Position ) Camera.CFrame = Camera.CFrame:Lerp( Desired, math.clamp(S.AimSmooth, 0.01, 1) ) end end) --========================================================-- -- FLY --========================================================-- local FlyUp = false local FlyDown = false local function FlyAction(Action, State) if State == Enum.UserInputState.Begin then if Action == "FlyUp" then FlyUp = true elseif Action == "FlyDown" then FlyDown = true end elseif State == Enum.UserInputState.End then if Action == "FlyUp" then FlyUp = false elseif Action == "FlyDown" then FlyDown = false end end return Enum.ContextActionResult.Sink end CAS:BindAction( "FlyUp", FlyAction, true, Enum.KeyCode.Space ) CAS:BindAction( "FlyDown", FlyAction, true, Enum.KeyCode.LeftControl ) CAS:SetTitle("FlyUp", "UP") CAS:SetTitle("FlyDown", "DOWN") CAS:SetPosition( "FlyUp", UDim2.new(1,-140,1,-180) ) CAS:SetPosition( "FlyDown", UDim2.new(1,-140,1,-110) ) RunService.RenderStepped:Connect(function() if not S.Fly or not Root then return end local Move = Vector3.zero if UIS:IsKeyDown(Enum.KeyCode.W) then Move += Camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then Move -= Camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then Move -= Camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then Move += Camera.CFrame.RightVector end if FlyUp then Move += Vector3.yAxis end if FlyDown then Move -= Vector3.yAxis end if Humanoid and Humanoid.MoveDirection.Magnitude > 0 then Move += Humanoid.MoveDirection end if Move.Magnitude > 0 then Root.AssemblyLinearVelocity = Move.Unit * S.FlySpeed else Root.AssemblyLinearVelocity = Vector3.zero end end) --========================================================-- -- NOCLIP / SPIN / MOVEMENT --========================================================-- RunService.Stepped:Connect(function() if Character then if S.Noclip then for _, Object in ipairs(Character:GetDescendants()) do if Object:IsA("BasePart") then Object.CanCollide = false end end end end if S.Spin and Root then Root.CFrame *= CFrame.Angles( 0, math.rad(S.SpinSpeed), 0 ) end end) RunService.Heartbeat:Connect(function() if Humanoid then if not S.Fly then Humanoid.WalkSpeed = S.WalkSpeed Humanoid.UseJumpPower = true Humanoid.JumpPower = S.JumpPower end end workspace.Gravity = S.Gravity Camera.FieldOfView = S.FOV end) UIS.JumpRequest:Connect(function() if S.InfiniteJump and Humanoid then Humanoid:ChangeState( Enum.HumanoidStateType.Jumping ) end end) --========================================================-- -- FREECAM --========================================================-- local FreecamConnection local function StartFreecam() if S.Freecam then return end S.Freecam = true local StartCFrame = Camera.CFrame Camera.CameraType = Enum.CameraType.Scriptable Camera.CFrame = StartCFrame local Speed = 1.5 FreecamConnection = RunService.RenderStepped:Connect(function() local Move = Vector3.zero if UIS:IsKeyDown(Enum.KeyCode.W) then Move += Camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then Move -= Camera.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then Move -= Camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then Move += Camera.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then Move += Vector3.yAxis end if UIS:IsKeyDown(Enum.KeyCode.LeftControl) then Move -= Vector3.yAxis end if Move.Magnitude > 0 then Camera.CFrame += Move.Unit * Speed end end) end local function StopFreecam() S.Freecam = false if FreecamConnection then FreecamConnection:Disconnect() FreecamConnection = nil end Camera.CameraType = Enum.CameraType.Custom if Humanoid then Camera.CameraSubject = Humanoid end end --========================================================-- -- MOVEMENT TAB --========================================================-- local function MovementTab() ClearContent() AddSection("MOVEMENT") AddInput( "WalkSpeed", S.WalkSpeed, function(v) S.WalkSpeed = v end ) AddInput( "JumpPower", S.JumpPower, function(v) S.JumpPower = v end ) AddInput( "Fly Speed", S.FlySpeed, function(v) S.FlySpeed = v end ) AddInput( "Gravity", S.Gravity, function(v) S.Gravity = v end ) AddInput( "Spin Speed", S.SpinSpeed, function(v) S.SpinSpeed = v end ) AddToggle("FLY", "Fly") AddToggle("NOCLIP", "Noclip") AddToggle("INFINITE JUMP", "InfiniteJump") AddToggle("SPIN", "Spin") AddSection("PRESETS") AddButton("NORMAL", function() S.WalkSpeed = 16 S.JumpPower = 50 S.Gravity = 196.2 S.FlySpeed = 80 end) AddButton("FAST", function() S.WalkSpeed = 50 S.JumpPower = 75 S.FlySpeed = 150 end) AddButton("ULTRA", function() S.WalkSpeed = 200 S.JumpPower = 150 S.FlySpeed = 500 end) end --========================================================-- -- AIM TAB --========================================================-- local function AimTab() ClearContent() AddSection("AIM ASSIST") AddToggle("AIM ASSIST", "Aim") AddInput( "Aim FOV", S.AimFOV, function(v) S.AimFOV = math.max(1,v) end ) AddInput( "Aim Smooth", S.AimSmooth, function(v) S.AimSmooth = math.clamp(v,0.01,1) end ) AddToggle("TEAM CHECK", "TeamCheck") AddToggle("VISIBLE CHECK", "VisibleCheck") AddSection("AIM PRESETS") AddButton("LOW FOV", function() S.AimFOV = 90 S.AimSmooth = 0.15 end) AddButton("MEDIUM FOV", function() S.AimFOV = 180 S.AimSmooth = 0.25 end) AddButton("HIGH FOV", function() S.AimFOV = 400 S.AimSmooth = 0.5 end) AddButton("FAST AIM", function() S.AimSmooth = 1 end) end --========================================================-- -- VISUAL TAB --========================================================-- local function VisualTab() ClearContent() AddSection("PLAYER ESP") AddToggle("PLAYER ESP", "ESP", function() UpdateESP() end) AddToggle("ESP NAMES", "ESPNames") AddToggle("ESP DISTANCE", "ESPDistance") AddToggle("ESP HEALTH", "ESPHealth") AddSection("CAMERA") AddInput( "Camera FOV", S.FOV, function(v) S.FOV = v end ) AddButton("FOV 70", function() S.FOV = 70 end) AddButton("FOV 90", function() S.FOV = 90 end) AddButton("FOV 120", function() S.FOV = 120 end) AddSection("LIGHTING") AddToggle("FULLBRIGHT", "Fullbright", function(On) if On then Lighting.Brightness = 3 Lighting.ClockTime = 14 Lighting.FogEnd = 100000 Lighting.GlobalShadows = false else Lighting.Brightness = 1 Lighting.GlobalShadows = true end end) AddButton("RESET LIGHTING", function() Lighting.Brightness = 1 Lighting.GlobalShadows = true Lighting.FogEnd = 1000 end) end --========================================================-- -- PLAYER TAB --========================================================-- local SelectedPlayer local function FindPlayer(Name) Name = Name:lower() for _, Player in ipairs(Players:GetPlayers()) do if Player ~= LP then if Player.Name:lower():sub(1,#Name) == Name or Player.DisplayName:lower():sub(1,#Name) == Name then return Player end end end end local function PlayerTab() ClearContent() AddSection("PLAYER SELECTOR") local Box = Instance.new("TextBox") Box.Size = UDim2.new(1,-5,0,43) Box.BackgroundColor3 = Color3.fromRGB(20,29,23) Box.BorderSizePixel = 0 Box.TextColor3 = Color3.new(1,1,1) Box.PlaceholderText = "Enter player name..." Box.Font = Enum.Font.Gotham Box.TextSize = 14 Box.Parent = Content Instance.new("UICorner",Box).CornerRadius = UDim.new(0,10) Box.FocusLost:Connect(function() SelectedPlayer = FindPlayer(Box.Text) if SelectedPlayer then Status.Text = "● SELECTED: " .. SelectedPlayer.Name else Status.Text = "● PLAYER NOT FOUND" end end) AddButton("TELEPORT TO PLAYER", function() if not SelectedPlayer or not SelectedPlayer.Character or not Root then return end local TargetRoot = SelectedPlayer.Character: FindFirstChild("HumanoidRootPart") if TargetRoot then Root.CFrame = TargetRoot.CFrame * CFrame.new(3,0,0) end end) AddButton("SPECTATE PLAYER", function() if SelectedPlayer and SelectedPlayer.Character then local TargetHumanoid = SelectedPlayer.Character: FindFirstChildOfClass("Humanoid") if TargetHumanoid then Camera.CameraSubject = TargetHumanoid end end end) AddButton("STOP SPECTATE", function() if Humanoid then Camera.CameraSubject = Humanoid end end) AddButton("SIT", function() if Humanoid then Humanoid.Sit = true end end) AddButton("RESET CHARACTER", function() if Humanoid then Humanoid.Health = 0 end end) AddSection("FREECAM") AddToggle("FREECAM", "Freecam", function(On) if On then StartFreecam() else StopFreecam() end end) end --========================================================-- -- MISC TAB --========================================================-- local function MiscTab() ClearContent() AddSection("WORLD") AddButton("SPAWN PLATFORM", function() if not Root then return end local Platform = Instance.new("Part") Platform.Name = "GubbyPlatform" Platform.Size = Vector3.new(14,1,14) Platform.Anchored = true Platform.CFrame = Root.CFrame * CFrame.new(0,-4,0) Platform.Parent = workspace task.delay(30,function() if Platform then Platform:Destroy() end end) end) AddButton("SPAWN PLATFORM UNDER PLAYER", function() if not Root then return end local Platform = Instance.new("Part") Platform.Size = Vector3.new(20,1,20) Platform.Anchored = true Platform.CFrame = CFrame.new( Root.Position.X, Root.Position.Y - 5, Root.Position.Z ) Platform.Parent = workspace end) AddSection("RESET") AddButton("RESET MOVEMENT", function() S.WalkSpeed = 16 S.JumpPower = 50 S.FlySpeed = 80 S.SpinSpeed = 20 S.Gravity = 196.2 if Humanoid then Humanoid.WalkSpeed = 16 Humanoid.JumpPower = 50 end workspace.Gravity = 196.2 end) AddButton("RESET CAMERA", function() S.FOV = 70 Camera.FieldOfView = 70 if Humanoid then Camera.CameraSubject = Humanoid end end) AddButton("RESET EVERYTHING", function() for Key, Value in pairs({ WalkSpeed = 16, JumpPower = 50, FlySpeed = 80, SpinSpeed = 20, Gravity = 196.2, FOV = 70, Aim = false, AimFOV = 180, AimSmooth = 0.25, ESP = false, Noclip = false, Fly = false, InfiniteJump = false, Spin = false, Fullbright = false, Freecam = false, TeamCheck = false, VisibleCheck = false, }) do S[Key] = Value end RemoveESP() StopFreecam() if Humanoid then Humanoid.WalkSpeed = 16 Humanoid.JumpPower = 50 end workspace.Gravity = 196.2 Camera.FieldOfView = 70 end) end --========================================================-- -- SETTINGS TAB --========================================================-- local function SettingsTab() ClearContent() AddSection("GUBBY HUB") AddButton("HIDE PANEL", function() Main.Visible = false OpenButton.Visible = true end) AddButton("RELOAD CHARACTER", function() RefreshCharacter() end) AddButton("RESET UI POSITION", function() Main.Position = UDim2.new(0.5,-215,0.5,-295) end) AddSection("KEYBINDS") AddButton("RightShift = Open / Close", function() end) AddButton("Q = Aim Assist", function() end) AddButton("F = Fly", function() end) AddButton("N = Noclip", function() end) AddSection("INFO") AddButton("Gubby Hub • Single Script", function() end) AddButton("Client-side Studio panel", function() end) end --========================================================-- -- TABS --========================================================-- local function CreateTab(Name, Callback) local B = Instance.new("TextButton") B.Size = UDim2.fromOffset(92,38) B.BackgroundColor3 = Color3.fromRGB(25,36,28) B.BorderSizePixel = 0 B.Text = Name B.TextColor3 = Color3.new(1,1,1) B.Font = Enum.Font.GothamBold B.TextSize = 12 B.Parent = TabBar Instance.new("UICorner",B).CornerRadius = UDim.new(0,9) B.MouseButton1Click:Connect(function() Callback() for _, Tab in ipairs(TabBar:GetChildren()) do if Tab:IsA("TextButton") then Tab.BackgroundColor3 = Color3.fromRGB(25,36,28) end end B.BackgroundColor3 = Color3.fromRGB(45,95,54) end) return B end CreateTab("MOVE", MovementTab) CreateTab("AIM", AimTab) CreateTab("VISUAL", VisualTab) CreateTab("PLAYER", PlayerTab) CreateTab("MISC", MiscTab) CreateTab("SETTINGS", SettingsTab) --========================================================-- -- OPEN BUTTON --========================================================-- OpenButton = Instance.new("TextButton") OpenButton.Size = UDim2.fromOffset(62,62) OpenButton.Position = UDim2.new(0,15,0.5,-31) OpenButton.BackgroundColor3 = Color3.fromRGB(17,25,20) OpenButton.BorderSizePixel = 0 OpenButton.Text = "G" OpenButton.TextColor3 = Color3.fromRGB(120,255,150) OpenButton.TextSize = 30 OpenButton.Font = Enum.Font.GothamBlack OpenButton.Visible = false OpenButton.Parent = GUI Instance.new("UICorner",OpenButton).CornerRadius = UDim.new(1,0) local OpenStroke = Instance.new("UIStroke") OpenStroke.Color = Color3.fromRGB(70,180,95) OpenStroke.Thickness = 2 OpenStroke.Parent = OpenButton CloseButton.MouseButton1Click:Connect(function() Main.Visible = false OpenButton.Visible = true end) OpenButton.MouseButton1Click:Connect(function() Main.Visible = true OpenButton.Visible = false end) --========================================================-- -- KEYBINDS --========================================================-- UIS.InputBegan:Connect(function(Input, Processed) if Processed then return end if Input.KeyCode == Enum.KeyCode.RightShift then Main.Visible = not Main.Visible OpenButton.Visible = not Main.Visible end if Input.KeyCode == Enum.KeyCode.Q then S.Aim = not S.Aim end if Input.KeyCode == Enum.KeyCode.F then S.Fly = not S.Fly end if Input.KeyCode == Enum.KeyCode.N then S.Noclip = not S.Noclip end end) --========================================================-- -- FULLBRIGHT LOOP --========================================================-- RunService.RenderStepped:Connect(function() if S.Fullbright then Lighting.Brightness = 3 Lighting.ClockTime = 14 Lighting.FogEnd = 100000 Lighting.GlobalShadows = false end end) --========================================================-- -- MOBILE RESPONSIVE UI --========================================================-- local function Resize() local View = Camera.ViewportSize if View.X < 600 then Main.Size = UDim2.new(0.92,0,0.82,0) Main.Position = UDim2.new(0.04,0,0.09,0) else Main.Size = UDim2.fromOffset(430,590) Main.Position = UDim2.new(0.5,-215,0.5,-295) end end Camera:GetPropertyChangedSignal("ViewportSize"):Connect(Resize) Resize() --========================================================-- -- START --========================================================-- MovementTab() Status.Text = "● GUBBY HUB LOADED" print("GUBBY HUB LOADED") print("Single-script Studio panel initialized.")