-- LocalScript (StarterPlayerScripts) local Players = game:GetService("Players") local Lighting = game:GetService("Lighting") local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local mouse = player:GetMouse() local function getChar() return player.Character or player.CharacterAdded:Wait() end local function getHum() return getChar():WaitForChild("Humanoid") end local function getRoot() return getChar():WaitForChild("HumanoidRootPart") end -- 상태값 local tpOn = false local espOn = false local flyOn = false local defaultSpeed = 16 local defaultJump = 50 local flySpeed = 60 local marker local pendingPos local espTable = {} local bv local bg -- ===== GUI ===== local gui = Instance.new("ScreenGui") gui.ResetOnSpawn = false gui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame", gui) frame.Size = UDim2.fromOffset(340, 550) frame.Position = UDim2.fromOffset(80, 60) frame.BackgroundColor3 = Color3.fromRGB(255,0,0) frame.Active = true frame.Visible = false Instance.new("UICorner", frame) -- 무지개 배경 RunService.RenderStepped:Connect(function() local hue = tick() % 5 / 5 frame.BackgroundColor3 = Color3.fromHSV(hue,1,1) end) local function makeBtn(text,y,color) local b = Instance.new("TextButton", frame) b.Size = UDim2.new(0.8,0,0,40) b.Position = UDim2.new(0.1,0,y,0) b.Text = text b.BackgroundColor3 = color b.TextColor3 = Color3.new(1,1,1) b.BorderSizePixel = 0 Instance.new("UICorner", b) return b end -- TP local tpBtn = makeBtn("TP OFF",0.05,Color3.fromRGB(100,100,255)) -- Speed local speedBox = Instance.new("TextBox", frame) speedBox.Size = UDim2.new(0.8,0,0,35) speedBox.Position = UDim2.new(0.1,0,0.15,0) speedBox.PlaceholderText = "Speed 입력" speedBox.BackgroundColor3 = Color3.fromRGB(60,60,60) speedBox.TextColor3 = Color3.new(1,1,1) speedBox.BorderSizePixel = 0 Instance.new("UICorner", speedBox) local speedBtn = makeBtn("Speed 적용",0.22,Color3.fromRGB(80,160,255)) -- Jump local jumpBox = Instance.new("TextBox", frame) jumpBox.Size = UDim2.new(0.8,0,0,35) jumpBox.Position = UDim2.new(0.1,0,0.32,0) jumpBox.PlaceholderText = "Jump 입력" jumpBox.BackgroundColor3 = Color3.fromRGB(60,60,60) jumpBox.TextColor3 = Color3.new(1,1,1) jumpBox.BorderSizePixel = 0 Instance.new("UICorner", jumpBox) local jumpBtn = makeBtn("Jump 적용",0.39,Color3.fromRGB(80,255,120)) -- 낮 / 밤 local dayBtn = makeBtn("낮",0.49,Color3.fromRGB(255,200,100)) local nightBtn = makeBtn("밤",0.56,Color3.fromRGB(100,100,255)) -- ESP local espBtn = makeBtn("ESP OFF",0.65,Color3.fromRGB(255,80,80)) -- FLY local flyBtn = makeBtn("FLY OFF",0.72,Color3.fromRGB(80,0,255)) -- ===== OPEN 버튼 ===== local openBtn = Instance.new("TextButton", gui) openBtn.Size = UDim2.fromOffset(120,40) openBtn.Position = UDim2.new(0.5, -60, 0, 20) openBtn.Text = "OPEN" openBtn.BackgroundColor3 = Color3.fromRGB(0,0,0) openBtn.TextColor3 = Color3.new(1,1,1) openBtn.BorderSizePixel = 0 Instance.new("UICorner", openBtn) openBtn.MouseButton1Click:Connect(function() frame.Visible = not frame.Visible openBtn.Text = frame.Visible and "CLOSE" or "OPEN" end) -- ===== GUI 드래그 ===== local dragging = false local dragInput local dragStart local startPos frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) frame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UIS.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart frame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) -- ===== 기능 ===== tpBtn.MouseButton1Click:Connect(function() tpOn = not tpOn tpBtn.Text = tpOn and "TP ON" or "TP OFF" end) speedBtn.MouseButton1Click:Connect(function() local v = tonumber(speedBox.Text) getHum().WalkSpeed = v or defaultSpeed end) jumpBtn.MouseButton1Click:Connect(function() local v = tonumber(jumpBox.Text) getHum().JumpPower = v or defaultJump end) dayBtn.MouseButton1Click:Connect(function() Lighting.ClockTime = 14 end) nightBtn.MouseButton1Click:Connect(function() Lighting.ClockTime = 0 end) -- ===== ESP ===== local function addESP(plr) if plr == player then return end if not plr.Character then return end if espTable[plr] then return end local highlight = Instance.new("Highlight") highlight.FillColor = Color3.fromRGB(255,0,0) highlight.FillTransparency = 0.4 highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Adornee = plr.Character highlight.Parent = plr.Character espTable[plr] = highlight end local function removeESP() for _,v in pairs(espTable) do if v then v:Destroy() end end table.clear(espTable) end espBtn.MouseButton1Click:Connect(function() espOn = not espOn espBtn.Text = espOn and "ESP ON" or "ESP OFF" if espOn then for _,plr in pairs(Players:GetPlayers()) do addESP(plr) end else removeESP() end end) Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function() task.wait(0.5) if espOn then addESP(plr) end end) end) -- ===== TP + 네온 발판 + 확인창 ===== mouse.Button1Down:Connect(function() if not tpOn then return end if not mouse.Hit then return end local pos = mouse.Hit.Position pendingPos = pos if marker then marker:Destroy() end marker = Instance.new("Part") marker.Size = Vector3.new(6,0.5,6) marker.Position = pos + Vector3.new(0,0.25,0) marker.Anchored = true marker.CanCollide = false marker.Material = Enum.Material.Neon marker.Color = Color3.fromRGB(255,0,0) marker.Parent = workspace local confirmGui = Instance.new("ScreenGui", player.PlayerGui) local box = Instance.new("Frame", confirmGui) box.Size = UDim2.fromOffset(220,100) box.Position = UDim2.fromScale(0.5,0.5) box.AnchorPoint = Vector2.new(0.5,0.5) box.BackgroundColor3 = Color3.fromRGB(30,30,30) Instance.new("UICorner", box) local label = Instance.new("TextLabel", box) label.Size = UDim2.new(1,0,0.5,0) label.BackgroundTransparency = 1 label.Text = "정말 이동?" label.TextColor3 = Color3.new(1,1,1) label.TextScaled = true local yes = Instance.new("TextButton", box) yes.Size = UDim2.new(0.5,0,0.5,0) yes.Position = UDim2.new(0,0,0.5,0) yes.Text = "YES" yes.BackgroundColor3 = Color3.fromRGB(0,200,0) local no = Instance.new("TextButton", box) no.Size = UDim2.new(0.5,0,0.5,0) no.Position = UDim2.new(0.5,0,0.5,0) no.Text = "NO" no.BackgroundColor3 = Color3.fromRGB(200,0,0) yes.MouseButton1Click:Connect(function() getRoot().CFrame = CFrame.new(pendingPos + Vector3.new(0,3,0)) confirmGui:Destroy() end) no.MouseButton1Click:Connect(function() if marker then marker:Destroy() end confirmGui:Destroy() end) end) -- ===== FLY 기능 ===== local function startFly() local char = getChar() local root = char:WaitForChild("HumanoidRootPart") local hum = char:WaitForChild("Humanoid") hum:ChangeState(Enum.HumanoidStateType.Physics) bv = Instance.new("BodyVelocity") bv.MaxForce = Vector3.new(1,1,1) * 100000 bv.Velocity = Vector3.zero bv.Parent = root bg = Instance.new("BodyGyro") bg.MaxTorque = Vector3.new(1,1,1) * 100000 bg.CFrame = root.CFrame bg.Parent = root RunService:BindToRenderStep("FlyMove", Enum.RenderPriority.Character.Value, function() local moveDir = hum.MoveDirection local y = 0 if UIS:IsKeyDown(Enum.KeyCode.Space) then y = 1 elseif UIS:IsKeyDown(Enum.KeyCode.LeftControl) then y = -1 end -- 캐릭터 기준 이동 local move = root.CFrame:VectorToWorldSpace(Vector3.new( moveDir.X, 0, moveDir.Z )) bv.Velocity = (move + Vector3.new(0,y,0)) * flySpeed bg.CFrame = workspace.CurrentCamera.CFrame end) end local function stopFly() RunService:UnbindFromRenderStep("FlyMove") if bv then bv:Destroy() end if bg then bg:Destroy() end getChar():WaitForChild("Humanoid"):ChangeState(Enum.HumanoidStateType.GettingUp) end flyBtn.MouseButton1Click:Connect(function() flyOn = not flyOn flyBtn.Text = flyOn and "FLY ON" or "FLY OFF" if flyOn then startFly() else stopFly() end end)