Created
December 6, 2025 04:16
-
-
Save yuechaann-sudo/32cf4b80a8db14698cf5cae9825d5d07 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| local player = game.Players.LocalPlayer | |
| local UIS = game:GetService("UserInputService") | |
| local flying = false | |
| local speed = 2 | |
| local bodyGyro | |
| local bodyVel | |
| local function createGUI() | |
| -- Hapus GUI lama kalau ada | |
| if player.PlayerGui:FindFirstChild("ModernMenu") then | |
| player.PlayerGui.ModernMenu:Destroy() | |
| end | |
| -- GUI | |
| local gui = Instance.new("ScreenGui", player.PlayerGui) | |
| gui.Name = "ModernMenu" | |
| -- MAIN FRAME | |
| local frame = Instance.new("Frame", gui) | |
| frame.Size = UDim2.new(0, 280, 0, 260) | |
| frame.Position = UDim2.new(0.5, -140, 0.4, -130) | |
| frame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) | |
| frame.BackgroundTransparency = 0.15 | |
| frame.BorderSizePixel = 0 | |
| frame.Active = true | |
| frame.Draggable = true | |
| local corner = Instance.new("UICorner", frame) | |
| corner.CornerRadius = UDim.new(0, 12) | |
| -- HEADER | |
| local header = Instance.new("Frame", frame) | |
| header.Size = UDim2.new(1, 0, 0, 30) | |
| header.BackgroundColor3 = Color3.fromRGB(15, 15, 15) | |
| header.BorderSizePixel = 0 | |
| local headerCorner = Instance.new("UICorner", header) | |
| headerCorner.CornerRadius = UDim.new(0, 12) | |
| local title = Instance.new("TextLabel", header) | |
| title.Size = UDim2.new(1, -60, 1, 0) | |
| title.Position = UDim2.new(0, 10, 0, 0) | |
| title.BackgroundTransparency = 1 | |
| title.Text = "SC BY-YUECHANN1 V1.2" -- Judul baru | |
| title.Font = Enum.Font.GothamBold | |
| title.TextSize = 16 | |
| title.TextColor3 = Color3.new(1, 1, 1) | |
| title.TextXAlignment = Enum.TextXAlignment.Left | |
| -- CLOSE (X) | |
| local close = Instance.new("TextButton", header) | |
| close.Size = UDim2.new(0, 30, 0, 30) | |
| close.Position = UDim2.new(1, -30, 0, 0) | |
| close.Text = "X" | |
| close.Font = Enum.Font.GothamBold | |
| close.TextSize = 16 | |
| close.BackgroundTransparency = 1 | |
| close.TextColor3 = Color3.fromRGB(255, 80, 80) | |
| close.MouseButton1Click:Connect(function() | |
| gui.Enabled = false | |
| end) | |
| -- MINIMIZE (-) | |
| local mini = Instance.new("TextButton", header) | |
| mini.Size = UDim2.new(0, 30, 0, 30) | |
| mini.Position = UDim2.new(1, -60, 0, 0) | |
| mini.Text = "-" | |
| mini.Font = Enum.Font.GothamBold | |
| mini.TextSize = 22 | |
| mini.BackgroundTransparency = 1 | |
| mini.TextColor3 = Color3.fromRGB(200, 200, 200) | |
| local minimized = false | |
| mini.MouseButton1Click:Connect(function() | |
| minimized = not minimized | |
| if minimized then | |
| frame.Size = UDim2.new(0, 280, 0, 30) | |
| else | |
| frame.Size = UDim2.new(0, 280, 0, 260) | |
| end | |
| end) | |
| -- REOPEN (Right Shift) | |
| UIS.InputBegan:Connect(function(input, g) | |
| if not g and input.KeyCode == Enum.KeyCode.RightShift then | |
| gui.Enabled = true | |
| end | |
| end) | |
| -- UI CREATOR FUNCTION | |
| local function makeButton(text, posY) | |
| local btn = Instance.new("TextButton", frame) | |
| btn.Size = UDim2.new(0.85, 0, 0, 32) | |
| btn.Position = UDim2.new(0.075, 0, posY, 0) | |
| btn.Text = text | |
| btn.Font = Enum.Font.GothamBlack | |
| btn.TextSize = 15 | |
| btn.TextColor3 = Color3.new(1, 1, 1) | |
| btn.BackgroundColor3 = Color3.fromRGB(0, 120, 255) | |
| btn.BorderSizePixel = 0 | |
| local c = Instance.new("UICorner", btn) | |
| c.CornerRadius = UDim.new(0, 10) | |
| return btn | |
| end | |
| -- TP SUMMIT BUTTON | |
| local tpSummitBtn = makeButton("TP SUMMIT", 0.18) | |
| local SUMMIT = Vector3.new(-6635, 3152, -798) | |
| tpSummitBtn.MouseButton1Click:Connect(function() | |
| local char = player.Character | |
| local root = char and char:FindFirstChild("HumanoidRootPart") | |
| if root then | |
| root.CFrame = CFrame.new(SUMMIT) | |
| end | |
| end) | |
| -- FLY BUTTON | |
| local flyBtn = makeButton("Fly : OFF", 0.35) | |
| -- SPEED LABEL | |
| local speedLabel = Instance.new("TextLabel", frame) | |
| speedLabel.Size = UDim2.new(0.85, 0, 0, 25) | |
| speedLabel.Position = UDim2.new(0.075, 0, 0.48, 0) | |
| speedLabel.BackgroundTransparency = 1 | |
| speedLabel.Font = Enum.Font.GothamSemibold | |
| speedLabel.TextSize = 14 | |
| speedLabel.TextColor3 = Color3.fromRGB(0, 255, 0) | |
| speedLabel.Text = "Fly Speed : "..speed | |
| -- SPEED BUTTONS | |
| local plusBtn = makeButton("+ Speed", 0.58) | |
| local minusBtn = makeButton("- Speed", 0.70) | |
| -- FLY FUNCTIONS | |
| local function startFly() | |
| local char = player.Character | |
| local root = char:WaitForChild("HumanoidRootPart") | |
| bodyGyro = Instance.new("BodyGyro", root) | |
| bodyGyro.P = 500000 | |
| bodyGyro.MaxTorque = Vector3.new(500000, 500000, 500000) | |
| bodyVel = Instance.new("BodyVelocity", root) | |
| bodyVel.Velocity = Vector3.new(0, 0, 0) | |
| bodyVel.MaxForce = Vector3.new(500000, 500000, 500000) | |
| flying = true | |
| end | |
| local function stopFly() | |
| flying = false | |
| if bodyGyro then bodyGyro:Destroy() end | |
| if bodyVel then bodyVel:Destroy() end | |
| end | |
| flyBtn.MouseButton1Click:Connect(function() | |
| flying = not flying | |
| if flying then | |
| flyBtn.Text = "Fly : ON" | |
| startFly() | |
| else | |
| flyBtn.Text = "Fly : OFF" | |
| stopFly() | |
| end | |
| end) | |
| plusBtn.MouseButton1Click:Connect(function() | |
| speed = speed + 1 | |
| speedLabel.Text = "Fly Speed : "..speed | |
| end) | |
| minusBtn.MouseButton1Click:Connect(function() | |
| if speed > 1 then | |
| speed = speed - 1 | |
| speedLabel.Text = "Fly Speed : "..speed | |
| end | |
| end) | |
| -- Fly movement | |
| game:GetService("RunService").Heartbeat:Connect(function() | |
| if flying then | |
| local char = player.Character | |
| local root = char:FindFirstChild("HumanoidRootPart") | |
| if root then | |
| if UIS:IsKeyDown(Enum.KeyCode.W) then | |
| bodyVel.Velocity = root.CFrame.LookVector * (speed * 10) | |
| elseif UIS:IsKeyDown(Enum.KeyCode.S) then | |
| bodyVel.Velocity = -root.CFrame.LookVector * (speed * 10) | |
| elseif UIS:IsKeyDown(Enum.KeyCode.A) then | |
| bodyVel.Velocity = -root.CFrame.RightVector * (speed * 10) | |
| elseif UIS:IsKeyDown(Enum.KeyCode.D) then | |
| bodyVel.Velocity = root.CFrame.RightVector * (speed * 10) | |
| else | |
| bodyVel.Velocity = Vector3.new(0, 0, 0) | |
| end | |
| bodyGyro.CFrame = workspace.CurrentCamera.CFrame | |
| end | |
| end | |
| end) | |
| end | |
| -- Panggil GUI pertama kali | |
| createGUI() | |
| -- Supaya GUI tetap ada saat respawn | |
| player.CharacterAdded:Connect(function() | |
| createGUI() | |
| end) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment