--========================================================-- -- VERIFIED CREATOR PANEL V4 -- LOCAL CREATOR TOOLS -- -- FREECAM CORREGIDA -- RIGHT CLICK + MOUSE -- W A S D -- SPACE / CTRL -- SPECTATE -- FLY -- NOCLIP -- FOV -- DAY / NIGHT -- -- LocalScript -- StarterPlayer > StarterPlayerScripts --========================================================-- --========================================================-- -- SERVICES --========================================================-- local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local TweenService = game:GetService("TweenService") local StarterGui = game:GetService("StarterGui") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local Camera = workspace.CurrentCamera --========================================================-- -- CONFIG --========================================================-- local CONFIG = { PanelWidth = 650, PanelHeight = 430, CameraSpeed = 1.5, MinCameraSpeed = 0.1, MaxCameraSpeed = 5, DefaultFOV = 70, MinFOV = 30, MaxFOV = 120, WalkSpeed = 16, JumpPower = 50, FlySpeed = 60, ToggleKey = Enum.KeyCode.RightShift, FreecamKey = Enum.KeyCode.C, } --========================================================-- -- STATE --========================================================-- local State = { GUIVisible = true, Freecam = false, Flying = false, Noclip = false, Spectating = false, SpectatePlayer = nil, -- Freecam movement MoveForward = false, MoveBackward = false, MoveLeft = false, MoveRight = false, MoveUp = false, MoveDown = false, -- Mouse RightMouseHeld = false, -- Camera CameraPosition = nil, CameraRotation = Vector2.new(0, 0), -- Saved camera OldCameraType = nil, OldCameraSubject = nil, -- Saved character OldWalkSpeed = nil, OldJumpPower = nil, OldAutoRotate = nil, FreecamCharacterCFrame = nil, -- Lighting OriginalClockTime = Lighting.ClockTime, } --========================================================-- -- CHARACTER --========================================================-- local function getCharacter() return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait() end local function getHumanoid() local character = getCharacter() if not character then return nil end return character:FindFirstChildOfClass("Humanoid") end local function getRoot() local character = getCharacter() if not character then return nil end return character:FindFirstChild("HumanoidRootPart") end --========================================================-- -- TWEEN --========================================================-- local function tween(object, properties, duration) local info = TweenInfo.new( duration or 0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out ) TweenService:Create( object, info, properties ):Play() end --========================================================-- -- SCREEN GUI --========================================================-- local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "VerifiedCreatorPanel" ScreenGui.ResetOnSpawn = false ScreenGui.IgnoreGuiInset = true ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.Parent = PlayerGui --========================================================-- -- OPEN BUTTON --========================================================-- local OpenButton = Instance.new("TextButton") OpenButton.Name = "OpenButton" OpenButton.Size = UDim2.new(0, 48, 0, 48) OpenButton.Position = UDim2.new(0, 18, 0.5, -24) OpenButton.BackgroundColor3 = Color3.fromRGB(12, 12, 16) OpenButton.Text = "C" OpenButton.TextColor3 = Color3.fromRGB(255, 255, 255) OpenButton.TextSize = 22 OpenButton.Font = Enum.Font.GothamBold OpenButton.AutoButtonColor = false OpenButton.Visible = false OpenButton.Parent = ScreenGui local OpenCorner = Instance.new("UICorner") OpenCorner.CornerRadius = UDim.new(1, 0) OpenCorner.Parent = OpenButton local OpenStroke = Instance.new("UIStroke") OpenStroke.Color = Color3.fromRGB(255, 45, 65) OpenStroke.Thickness = 2 OpenStroke.Parent = OpenButton --========================================================-- -- MAIN --========================================================-- local Main = Instance.new("Frame") Main.Name = "MainPanel" Main.Size = UDim2.new( 0, CONFIG.PanelWidth, 0, CONFIG.PanelHeight ) Main.Position = UDim2.new( 0.5, -CONFIG.PanelWidth / 2, 0.5, -CONFIG.PanelHeight / 2 ) Main.BackgroundColor3 = Color3.fromRGB(10, 10, 14) Main.BorderSizePixel = 0 Main.Parent = ScreenGui local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 12) MainCorner.Parent = Main local MainStroke = Instance.new("UIStroke") MainStroke.Color = Color3.fromRGB(255, 40, 60) MainStroke.Thickness = 2 MainStroke.Parent = Main --========================================================-- -- HEADER --========================================================-- local Header = Instance.new("Frame") Header.Name = "Header" Header.Size = UDim2.new(1, 0, 0, 65) Header.BackgroundColor3 = Color3.fromRGB(16, 16, 21) Header.BorderSizePixel = 0 Header.Parent = Main local HeaderCorner = Instance.new("UICorner") HeaderCorner.CornerRadius = UDim.new(0, 12) HeaderCorner.Parent = Header local Title = Instance.new("TextLabel") Title.BackgroundTransparency = 1 Title.Position = UDim2.new(0, 18, 0, 7) Title.Size = UDim2.new(1, -100, 0, 28) Title.Text = "VERIFIED CREATOR" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.TextSize = 20 Title.Font = Enum.Font.GothamBold Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = Header local Subtitle = Instance.new("TextLabel") Subtitle.BackgroundTransparency = 1 Subtitle.Position = UDim2.new(0, 19, 0, 34) Subtitle.Size = UDim2.new(1, -100, 0, 20) Subtitle.Text = "CONTENT CREATOR TOOLS" Subtitle.TextColor3 = Color3.fromRGB(255, 70, 85) Subtitle.TextSize = 11 Subtitle.Font = Enum.Font.GothamBold Subtitle.TextXAlignment = Enum.TextXAlignment.Left Subtitle.Parent = Header local CloseButton = Instance.new("TextButton") CloseButton.Name = "Close" CloseButton.Size = UDim2.new(0, 38, 0, 38) CloseButton.Position = UDim2.new(1, -50, 0, 13) CloseButton.BackgroundColor3 = Color3.fromRGB(35, 15, 18) CloseButton.Text = "×" CloseButton.TextColor3 = Color3.fromRGB(255, 80, 90) CloseButton.TextSize = 25 CloseButton.Font = Enum.Font.GothamBold CloseButton.AutoButtonColor = false CloseButton.Parent = Header local CloseCorner = Instance.new("UICorner") CloseCorner.CornerRadius = UDim.new(0, 8) CloseCorner.Parent = CloseButton --========================================================-- -- TABS --========================================================-- local TabBar = Instance.new("Frame") TabBar.Size = UDim2.new(0, 130, 1, -75) TabBar.Position = UDim2.new(0, 10, 0, 72) TabBar.BackgroundColor3 = Color3.fromRGB(14, 14, 19) TabBar.BorderSizePixel = 0 TabBar.Parent = Main local TabCorner = Instance.new("UICorner") TabCorner.CornerRadius = UDim.new(0, 9) TabCorner.Parent = TabBar local TabLayout = Instance.new("UIListLayout") TabLayout.Padding = UDim.new(0, 7) TabLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center TabLayout.SortOrder = Enum.SortOrder.LayoutOrder TabLayout.Parent = TabBar local TabPadding = Instance.new("UIPadding") TabPadding.PaddingTop = UDim.new(0, 10) TabPadding.PaddingLeft = UDim.new(0, 8) TabPadding.PaddingRight = UDim.new(0, 8) TabPadding.Parent = TabBar --========================================================-- -- CONTENT --========================================================-- local Content = Instance.new("Frame") Content.Size = UDim2.new(1, -155, 1, -75) Content.Position = UDim2.new(0, 145, 0, 72) Content.BackgroundTransparency = 1 Content.Parent = Main local Pages = {} local function createPage(name) local page = Instance.new("ScrollingFrame") page.Name = name page.Size = UDim2.new(1, 0, 1, 0) page.BackgroundTransparency = 1 page.BorderSizePixel = 0 page.ScrollBarThickness = 4 page.ScrollBarImageColor3 = Color3.fromRGB(255, 50, 70) page.Visible = false page.CanvasSize = UDim2.new(0, 0, 0, 0) page.AutomaticCanvasSize = Enum.AutomaticSize.Y page.Parent = Content local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 8) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = page local padding = Instance.new("UIPadding") padding.PaddingTop = UDim.new(0, 5) padding.PaddingBottom = UDim.new(0, 10) padding.PaddingRight = UDim.new(0, 8) padding.Parent = page Pages[name] = page return page end local CameraPage = createPage("Camera") local PlayerPage = createPage("Player") local SpectatePage = createPage("Spectate") local SettingsPage = createPage("Settings") --========================================================-- -- TAB FUNCTION --========================================================-- local function createTab(text, pageName) local button = Instance.new("TextButton") button.Size = UDim2.new(1, 0, 0, 42) button.BackgroundColor3 = Color3.fromRGB(20, 20, 26) button.Text = text button.TextColor3 = Color3.fromRGB(190, 190, 200) button.TextSize = 12 button.Font = Enum.Font.GothamBold button.AutoButtonColor = false button.Parent = TabBar local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 7) corner.Parent = button button.MouseButton1Click:Connect( function() for _, page in pairs(Pages) do page.Visible = false end Pages[pageName].Visible = true for _, child in ipairs( TabBar:GetChildren() ) do if child:IsA("TextButton") then child.BackgroundColor3 = Color3.fromRGB( 20, 20, 26 ) child.TextColor3 = Color3.fromRGB( 190, 190, 200 ) end end button.BackgroundColor3 = Color3.fromRGB( 120, 20, 30 ) button.TextColor3 = Color3.fromRGB( 255, 255, 255 ) end ) return button end createTab( "🎥 CAMERA", "Camera" ) createTab( "⚡ PLAYER", "Player" ) createTab( "👁 SPECTATE", "Spectate" ) createTab( "⚙ SETTINGS", "Settings" ) --========================================================-- -- SECTION --========================================================-- local function createSection(page, text) local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 0, 28) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = Color3.fromRGB( 255, 65, 80 ) label.TextSize = 13 label.Font = Enum.Font.GothamBold label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = page return label end --========================================================-- -- BUTTON --========================================================-- local function createButton(page, text) local button = Instance.new("TextButton") button.Size = UDim2.new(1, 0, 0, 40) button.BackgroundColor3 = Color3.fromRGB( 22, 22, 28 ) button.Text = text button.TextColor3 = Color3.fromRGB( 235, 235, 240 ) button.TextSize = 12 button.Font = Enum.Font.GothamBold button.AutoButtonColor = false button.Parent = page local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 7) corner.Parent = button local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB( 45, 45, 55 ) stroke.Thickness = 1 stroke.Parent = button return button end --========================================================-- -- SLIDER --========================================================-- local function createSlider( page, title, minimum, maximum, default, callback ) local holder = Instance.new("Frame") holder.Size = UDim2.new(1, 0, 0, 60) holder.BackgroundTransparency = 1 holder.Parent = page local label = Instance.new("TextLabel") label.Size = UDim2.new(0.7, 0, 0, 22) label.BackgroundTransparency = 1 label.Text = title label.TextColor3 = Color3.fromRGB( 220, 220, 225 ) label.TextSize = 12 label.Font = Enum.Font.GothamBold label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = holder local valueLabel = Instance.new("TextLabel") valueLabel.Position = UDim2.new(0.7, 0, 0, 0) valueLabel.Size = UDim2.new(0.3, 0, 0, 22) valueLabel.BackgroundTransparency = 1 valueLabel.Text = string.format( "%.2f", default ) valueLabel.TextColor3 = Color3.fromRGB( 255, 65, 80 ) valueLabel.TextSize = 12 valueLabel.Font = Enum.Font.GothamBold valueLabel.TextXAlignment = Enum.TextXAlignment.Right valueLabel.Parent = holder local bar = Instance.new("Frame") bar.Position = UDim2.new(0, 0, 0, 34) bar.Size = UDim2.new(1, 0, 0, 7) bar.BackgroundColor3 = Color3.fromRGB( 35, 35, 42 ) bar.BorderSizePixel = 0 bar.Parent = holder local barCorner = Instance.new("UICorner") barCorner.CornerRadius = UDim.new(1, 0) barCorner.Parent = bar local fill = Instance.new("Frame") fill.Size = UDim2.new( math.clamp( (default - minimum) / (maximum - minimum), 0, 1 ), 0, 1, 0 ) fill.BackgroundColor3 = Color3.fromRGB( 255, 45, 65 ) fill.BorderSizePixel = 0 fill.Parent = bar local fillCorner = Instance.new("UICorner") fillCorner.CornerRadius = UDim.new(1, 0) fillCorner.Parent = fill local dragging = false local function update(input) local relative = ( input.Position.X - bar.AbsolutePosition.X ) / bar.AbsoluteSize.X relative = math.clamp( relative, 0, 1 ) local value = minimum + (maximum - minimum) * relative valueLabel.Text = string.format( "%.2f", value ) fill.Size = UDim2.new( relative, 0, 1, 0 ) callback(value) end bar.InputBegan:Connect( function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true update(input) end end ) UserInputService.InputChanged:Connect( function(input) if not dragging then return end if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then update(input) end end ) UserInputService.InputEnded:Connect( function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end ) return holder end --========================================================-- -- CAMERA PAGE --========================================================-- createSection( CameraPage, "CAMERA CONTROLS" ) local FreecamButton = createButton( CameraPage, "🎥 FREE CAMERA : OFF" ) createSlider( CameraPage, "Camera Speed", CONFIG.MinCameraSpeed, CONFIG.MaxCameraSpeed, CONFIG.CameraSpeed, function(value) CONFIG.CameraSpeed = value end ) createSlider( CameraPage, "Field Of View", CONFIG.MinFOV, CONFIG.MaxFOV, CONFIG.DefaultFOV, function(value) Camera.FieldOfView = value end ) local ResetCameraButton = createButton( CameraPage, "↻ RESET CAMERA" ) --========================================================-- -- START FREECAM --========================================================-- local function startFreecam() if State.Freecam then return end local humanoid = getHumanoid() local root = getRoot() if not humanoid or not root then return end -- Activar State.Freecam = true -- Guardar cámara State.OldCameraType = Camera.CameraType State.OldCameraSubject = Camera.CameraSubject -- Guardar personaje State.OldWalkSpeed = humanoid.WalkSpeed State.OldJumpPower = humanoid.JumpPower State.OldAutoRotate = humanoid.AutoRotate State.FreecamCharacterCFrame = root.CFrame --====================================================-- -- GUARDAR LA CÁMARA CORRECTAMENTE --====================================================-- local currentCFrame = Camera.CFrame local look = currentCFrame.LookVector -- Pitch = arriba / abajo local pitch = math.asin( math.clamp( look.Y, -1, 1 ) ) -- Yaw = izquierda / derecha local yaw = math.atan2( -look.X, -look.Z ) State.CameraRotation = Vector2.new( pitch, yaw ) State.CameraPosition = currentCFrame.Position --====================================================-- -- CONGELAR PERSONAJE --====================================================-- root.Anchored = true humanoid.WalkSpeed = 0 humanoid.JumpPower = 0 humanoid.AutoRotate = false -- IMPORTANTE: -- NO usamos PlatformStand. -- Esto mantiene al personaje de pie. --====================================================-- -- ACTIVAR CÁMARA SCRIPTABLE --====================================================-- Camera.CameraType = Enum.CameraType.Scriptable State.RightMouseHeld = false UserInputService.MouseBehavior = Enum.MouseBehavior.Default FreecamButton.Text = "🎥 FREE CAMERA : ON" FreecamButton:SetAttribute( "Active", true ) tween( FreecamButton, { BackgroundColor3 = Color3.fromRGB( 110, 20, 30 ) }, 0.15 ) end --========================================================-- -- STOP FREECAM --========================================================-- local function stopFreecam() if not State.Freecam then return end State.Freecam = false local humanoid = getHumanoid() local root = getRoot() -- Liberar mouse State.RightMouseHeld = false UserInputService.MouseBehavior = Enum.MouseBehavior.Default --====================================================-- -- RESTAURAR PERSONAJE --====================================================-- if root then root.Anchored = false if State.FreecamCharacterCFrame then root.CFrame = State.FreecamCharacterCFrame end end if humanoid then humanoid.WalkSpeed = State.OldWalkSpeed or CONFIG.WalkSpeed humanoid.JumpPower = State.OldJumpPower or CONFIG.JumpPower if State.OldAutoRotate ~= nil then humanoid.AutoRotate = State.OldAutoRotate else humanoid.AutoRotate = true end end --====================================================-- -- RESTAURAR CÁMARA --====================================================-- Camera.CameraType = State.OldCameraType or Enum.CameraType.Custom Camera.CameraSubject = State.OldCameraSubject or humanoid -- Limpiar movimiento State.MoveForward = false State.MoveBackward = false State.MoveLeft = false State.MoveRight = false State.MoveUp = false State.MoveDown = false FreecamButton.Text = "🎥 FREE CAMERA : OFF" FreecamButton:SetAttribute( "Active", false ) tween( FreecamButton, { BackgroundColor3 = Color3.fromRGB( 22, 22, 28 ) }, 0.15 ) end FreecamButton.MouseButton1Click:Connect( function() if State.Freecam then stopFreecam() else startFreecam() end end ) ResetCameraButton.MouseButton1Click:Connect( function() stopFreecam() Camera.FieldOfView = CONFIG.DefaultFOV State.CameraRotation = Vector2.new(0, 0) State.CameraPosition = nil end ) --========================================================-- -- PLAYER PAGE --========================================================-- createSection( PlayerPage, "PLAYER TOOLS" ) local FlyButton = createButton( PlayerPage, "✈ FLY : OFF" ) local NoclipButton = createButton( PlayerPage, "👻 NOCLIP : OFF" ) createSlider( PlayerPage, "Walk Speed", 8, 100, CONFIG.WalkSpeed, function(value) CONFIG.WalkSpeed = value if not State.Freecam then local humanoid = getHumanoid() if humanoid then humanoid.WalkSpeed = value end end end ) createSlider( PlayerPage, "Jump Power", 20, 150, CONFIG.JumpPower, function(value) CONFIG.JumpPower = value if not State.Freecam then local humanoid = getHumanoid() if humanoid then humanoid.JumpPower = value end end end ) local ResetMovementButton = createButton( PlayerPage, "↻ RESET MOVEMENT" ) --========================================================-- -- FLY --========================================================-- local function startFly() if State.Flying then return end if State.Freecam then stopFreecam() end local humanoid = getHumanoid() local root = getRoot() if not humanoid or not root then return end State.Flying = true humanoid.PlatformStand = true FlyButton.Text = "✈ FLY : ON" FlyButton:SetAttribute( "Active", true ) tween( FlyButton, { BackgroundColor3 = Color3.fromRGB( 110, 20, 30 ) }, 0.15 ) end local function stopFly() if not State.Flying then return end State.Flying = false local humanoid = getHumanoid() local root = getRoot() if root then root.AssemblyLinearVelocity = Vector3.zero end if humanoid then humanoid.PlatformStand = false humanoid.WalkSpeed = CONFIG.WalkSpeed humanoid.JumpPower = CONFIG.JumpPower end FlyButton.Text = "✈ FLY : OFF" FlyButton:SetAttribute( "Active", false ) tween( FlyButton, { BackgroundColor3 = Color3.fromRGB( 22, 22, 28 ) }, 0.15 ) end FlyButton.MouseButton1Click:Connect( function() if State.Flying then stopFly() else startFly() end end ) --========================================================-- -- NOCLIP --========================================================-- NoclipButton.MouseButton1Click:Connect( function() State.Noclip = not State.Noclip if State.Noclip then NoclipButton.Text = "👻 NOCLIP : ON" NoclipButton:SetAttribute( "Active", true ) tween( NoclipButton, { BackgroundColor3 = Color3.fromRGB( 110, 20, 30 ) }, 0.15 ) else NoclipButton.Text = "👻 NOCLIP : OFF" NoclipButton:SetAttribute( "Active", false ) tween( NoclipButton, { BackgroundColor3 = Color3.fromRGB( 22, 22, 28 ) }, 0.15 ) end end ) --========================================================-- -- RESET MOVEMENT --========================================================-- ResetMovementButton.MouseButton1Click:Connect( function() stopFly() local humanoid = getHumanoid() if humanoid then humanoid.PlatformStand = false humanoid.AutoRotate = true humanoid.WalkSpeed = 16 humanoid.JumpPower = 50 end State.Noclip = false NoclipButton.Text = "👻 NOCLIP : OFF" NoclipButton:SetAttribute( "Active", false ) tween( NoclipButton, { BackgroundColor3 = Color3.fromRGB( 22, 22, 28 ) }, 0.15 ) end ) --========================================================-- -- SPECTATE PAGE --========================================================-- createSection( SpectatePage, "PLAYERS" ) local SpectateStatus = Instance.new("TextLabel") SpectateStatus.Size = UDim2.new(1, 0, 0, 35) SpectateStatus.BackgroundColor3 = Color3.fromRGB( 20, 20, 26 ) SpectateStatus.Text = "No player selected" SpectateStatus.TextColor3 = Color3.fromRGB( 180, 180, 190 ) SpectateStatus.TextSize = 12 SpectateStatus.Font = Enum.Font.GothamBold SpectateStatus.Parent = SpectatePage local SpectateCorner = Instance.new("UICorner") SpectateCorner.CornerRadius = UDim.new(0, 7) SpectateCorner.Parent = SpectateStatus local StopSpectateButton = createButton( SpectatePage, "⏹ STOP SPECTATE" ) local PlayerListFrame = Instance.new("Frame") PlayerListFrame.Size = UDim2.new(1, 0, 0, 0) PlayerListFrame.AutomaticSize = Enum.AutomaticSize.Y PlayerListFrame.BackgroundTransparency = 1 PlayerListFrame.Parent = SpectatePage local PlayerListLayout = Instance.new("UIListLayout") PlayerListLayout.Padding = UDim.new(0, 6) PlayerListLayout.Parent = PlayerListFrame --========================================================-- -- STOP SPECTATE --========================================================-- local function stopSpectate() State.Spectating = false State.SpectatePlayer = nil Camera.CameraType = Enum.CameraType.Custom local humanoid = getHumanoid() if humanoid then Camera.CameraSubject = humanoid end SpectateStatus.Text = "No player selected" end StopSpectateButton.MouseButton1Click:Connect( stopSpectate ) --========================================================-- -- SPECTATE PLAYER --========================================================-- local function spectatePlayer(player) if not player then return end if player == LocalPlayer then return end local character = player.Character if not character then return end local humanoid = character:FindFirstChildOfClass( "Humanoid" ) if not humanoid then return end if State.Freecam then stopFreecam() end State.Spectating = true State.SpectatePlayer = player Camera.CameraType = Enum.CameraType.Custom Camera.CameraSubject = humanoid SpectateStatus.Text = "Spectating: " .. player.DisplayName end --========================================================-- -- PLAYER LIST --========================================================-- local function refreshPlayerList() for _, child in ipairs( PlayerListFrame:GetChildren() ) do if child:IsA("TextButton") then child:Destroy() end end for _, player in ipairs( Players:GetPlayers() ) do if player ~= LocalPlayer then local button = Instance.new("TextButton") button.Size = UDim2.new( 1, 0, 0, 40 ) button.BackgroundColor3 = Color3.fromRGB( 22, 22, 28 ) button.Text = "👤 " .. player.DisplayName .. " @" .. player.Name button.TextColor3 = Color3.fromRGB( 230, 230, 235 ) button.TextSize = 11 button.Font = Enum.Font.GothamBold button.AutoButtonColor = false button.Parent = PlayerListFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 7) corner.Parent = button button.MouseButton1Click:Connect( function() spectatePlayer( player ) end ) end end end Players.PlayerAdded:Connect( refreshPlayerList ) Players.PlayerRemoving:Connect( function(player) if State.SpectatePlayer == player then stopSpectate() end task.wait(0.1) refreshPlayerList() end ) refreshPlayerList() --========================================================-- -- SETTINGS PAGE --========================================================-- createSection( SettingsPage, "CREATOR SETTINGS" ) local DayButton = createButton( SettingsPage, "☀ SET DAY" ) local NightButton = createButton( SettingsPage, "🌙 SET NIGHT" ) local ResetLightingButton = createButton( SettingsPage, "↻ RESET LIGHTING" ) local HideButton = createButton( SettingsPage, "👁 HIDE CREATOR GUI" ) local CreatorInfo = Instance.new("TextLabel") CreatorInfo.Size = UDim2.new(1, 0, 0, 70) CreatorInfo.BackgroundColor3 = Color3.fromRGB( 16, 16, 21 ) CreatorInfo.Text = "VERIFIED CREATOR PANEL\n" .. "Camera • Spectate • Recording • Creator Tools" CreatorInfo.TextColor3 = Color3.fromRGB( 170, 170, 180 ) CreatorInfo.TextSize = 11 CreatorInfo.Font = Enum.Font.GothamBold CreatorInfo.TextWrapped = true CreatorInfo.Parent = SettingsPage local InfoCorner = Instance.new("UICorner") InfoCorner.CornerRadius = UDim.new(0, 8) InfoCorner.Parent = CreatorInfo DayButton.MouseButton1Click:Connect( function() Lighting.ClockTime = 14 end ) NightButton.MouseButton1Click:Connect( function() Lighting.ClockTime = 0 end ) ResetLightingButton.MouseButton1Click:Connect( function() Lighting.ClockTime = State.OriginalClockTime end ) --========================================================-- -- GUI VISIBILITY --========================================================-- local function setGUIVisible(visible) State.GUIVisible = visible Main.Visible = visible OpenButton.Visible = not visible end CloseButton.MouseButton1Click:Connect( function() setGUIVisible(false) end ) OpenButton.MouseButton1Click:Connect( function() setGUIVisible(true) end ) HideButton.MouseButton1Click:Connect( function() setGUIVisible(false) end ) --========================================================-- -- DRAG GUI --========================================================-- local dragging = false local dragStart local startPosition Header.InputBegan:Connect( function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPosition = Main.Position end end ) UserInputService.InputChanged:Connect( function(input) if not dragging then return end if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then local delta = input.Position - dragStart Main.Position = UDim2.new( startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.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 ) --========================================================-- -- KEYBOARD --========================================================-- UserInputService.InputBegan:Connect( function(input, processed) if processed then return end local key = input.KeyCode -- GUI if key == CONFIG.ToggleKey then setGUIVisible( not State.GUIVisible ) return end -- FREECAM if key == CONFIG.FreecamKey then if State.Freecam then stopFreecam() else startFreecam() end return end -- MOVIMIENTO if State.Freecam then if key == Enum.KeyCode.W then State.MoveForward = true elseif key == Enum.KeyCode.S then State.MoveBackward = true elseif key == Enum.KeyCode.A then State.MoveLeft = true elseif key == Enum.KeyCode.D then State.MoveRight = true elseif key == Enum.KeyCode.Space then State.MoveUp = true elseif key == Enum.KeyCode.LeftControl then State.MoveDown = true end end end ) --========================================================-- -- KEYBOARD RELEASE --========================================================-- UserInputService.InputEnded:Connect( function(input) local key = input.KeyCode if key == Enum.KeyCode.W then State.MoveForward = false elseif key == Enum.KeyCode.S then State.MoveBackward = false elseif key == Enum.KeyCode.A then State.MoveLeft = false elseif key == Enum.KeyCode.D then State.MoveRight = false elseif key == Enum.KeyCode.Space then State.MoveUp = false elseif key == Enum.KeyCode.LeftControl then State.MoveDown = false end end ) --========================================================-- -- RIGHT CLICK + MOUSE --========================================================-- local MouseSensitivity = 0.0025 UserInputService.InputBegan:Connect( function(input, processed) if processed then return end if not State.Freecam then return end if input.UserInputType == Enum.UserInputType.MouseButton2 then State.RightMouseHeld = true UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition end end ) UserInputService.InputEnded:Connect( function(input) if input.UserInputType == Enum.UserInputType.MouseButton2 then State.RightMouseHeld = false UserInputService.MouseBehavior = Enum.MouseBehavior.Default end end ) UserInputService.InputChanged:Connect( function(input) if not State.Freecam then return end if not State.RightMouseHeld then return end if input.UserInputType == Enum.UserInputType.MouseMovement then State.CameraRotation += Vector2.new( -input.Delta.Y * MouseSensitivity, -input.Delta.X * MouseSensitivity ) State.CameraRotation = Vector2.new( math.clamp( State.CameraRotation.X, -1.45, 1.45 ), State.CameraRotation.Y ) end end ) --========================================================-- -- FREECAM UPDATE --========================================================-- local function updateFreecam(deltaTime) if not State.Freecam then return end if not State.CameraPosition then State.CameraPosition = Camera.CFrame.Position end --====================================================-- -- ROTACIÓN --====================================================-- local pitch = State.CameraRotation.X local yaw = State.CameraRotation.Y -- IMPORTANTE: -- primero YAW y después PITCH. -- -- Esto evita que la cámara se incline -- hacia los lados. local rotation = CFrame.Angles( 0, yaw, 0 ) * CFrame.Angles( pitch, 0, 0 ) --====================================================-- -- MOVIMIENTO --====================================================-- local movement = Vector3.zero if State.MoveForward then movement += Vector3.new( 0, 0, -1 ) end if State.MoveBackward then movement += Vector3.new( 0, 0, 1 ) end if State.MoveLeft then movement += Vector3.new( -1, 0, 0 ) end if State.MoveRight then movement += Vector3.new( 1, 0, 0 ) end if State.MoveUp then movement += Vector3.new( 0, 1, 0 ) end if State.MoveDown then movement += Vector3.new( 0, -1, 0 ) end if movement.Magnitude > 0 then movement = movement.Unit local speed = 40 * CONFIG.CameraSpeed local worldMovement = rotation:VectorToWorldSpace( movement ) State.CameraPosition += worldMovement * speed * deltaTime end --====================================================-- -- APLICAR CÁMARA --====================================================-- Camera.CFrame = CFrame.new( State.CameraPosition ) * rotation end --========================================================-- -- FLY UPDATE --========================================================-- local function updateFly() if not State.Flying then return end local root = getRoot() if not root then return end local movement = Vector3.zero if State.MoveForward then movement += Camera.CFrame.LookVector end if State.MoveBackward then movement -= Camera.CFrame.LookVector end if State.MoveRight then movement += Camera.CFrame.RightVector end if State.MoveLeft then movement -= Camera.CFrame.RightVector end if State.MoveUp then movement += Vector3.new( 0, 1, 0 ) end if State.MoveDown then movement -= Vector3.new( 0, 1, 0 ) end if movement.Magnitude > 0 then movement = movement.Unit end root.AssemblyLinearVelocity = movement * CONFIG.FlySpeed end --========================================================-- -- NOCLIP --========================================================-- local function applyNoclip() if not State.Noclip then return end local character = LocalPlayer.Character if not character then return end for _, part in ipairs( character:GetDescendants() ) do if part:IsA("BasePart") then part.CanCollide = false end end end --========================================================-- -- RENDER LOOP --========================================================-- RunService.RenderStepped:Connect( function(deltaTime) if State.Freecam then updateFreecam( deltaTime ) end if State.Flying then updateFly() end if State.Noclip then applyNoclip() end end ) --========================================================-- -- RESPAWN --========================================================-- LocalPlayer.CharacterAdded:Connect( function(character) State.Freecam = false State.Flying = false State.Noclip = false State.Spectating = false State.SpectatePlayer = nil State.RightMouseHeld = false State.MoveForward = false State.MoveBackward = false State.MoveLeft = false State.MoveRight = false State.MoveUp = false State.MoveDown = false State.CameraPosition = nil State.FreecamCharacterCFrame = nil UserInputService.MouseBehavior = Enum.MouseBehavior.Default task.wait(0.5) local humanoid = character:FindFirstChildOfClass( "Humanoid" ) local root = character:FindFirstChild( "HumanoidRootPart" ) if root then root.Anchored = false end if humanoid then humanoid.PlatformStand = false humanoid.AutoRotate = true humanoid.WalkSpeed = CONFIG.WalkSpeed humanoid.JumpPower = CONFIG.JumpPower end Camera.CameraType = Enum.CameraType.Custom if humanoid then Camera.CameraSubject = humanoid end FreecamButton.Text = "🎥 FREE CAMERA : OFF" FlyButton.Text = "✈ FLY : OFF" NoclipButton.Text = "👻 NOCLIP : OFF" FreecamButton:SetAttribute( "Active", false ) FlyButton:SetAttribute( "Active", false ) NoclipButton:SetAttribute( "Active", false ) end ) --========================================================-- -- INITIAL --========================================================-- CameraPage.Visible = true --========================================================-- -- NOTIFICATION --========================================================-- task.spawn( function() pcall( function() StarterGui:SetCore( "SendNotification", { Title = "VERIFIED CREATOR", Text = "Creator Panel cargado correctamente.", Duration = 4, } ) end ) end ) --========================================================-- -- CONSOLE --========================================================-- print( "========================================" ) print( " VERIFIED CREATOR PANEL V4" ) print( "========================================" ) print( "C = Freecam" ) print( "W A S D = Movimiento" ) print( "SPACE = Subir" ) print( "CTRL = Bajar" ) print( "RMB + Mouse = Mirar" ) print( "RightShift = Mostrar/Ocultar GUI" ) print( "========================================" )