
Key Required

--========================================================--
-- 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(
"========================================"
)
Hello