Skip to content

Instantly share code, notes, and snippets.

@yuechaann-sudo
Last active December 6, 2025 04:58
Show Gist options
  • Select an option

  • Save yuechaann-sudo/0b605cdeac4794703685b53ce21ebd2b to your computer and use it in GitHub Desktop.

Select an option

Save yuechaann-sudo/0b605cdeac4794703685b53ce21ebd2b to your computer and use it in GitHub Desktop.
local player = game.Players.LocalPlayer
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
-- SIMPAN POSISI DAN STATUS
local guiEnabled = true
local framePosition = UDim2.new(0.5, -140, 0.4, -130)
local minimized = false
-- GUI
local gui = Instance.new("ScreenGui")
gui.Name = "ModernMenu"
gui.ResetOnSpawn = false -- Penting biar tetap ada walau respawn
gui.Parent = player:WaitForChild("PlayerGui")
-- MAIN FRAME
local frame = Instance.new("Frame", gui)
frame.Size = UDim2.new(0, 280, 0, 260)
frame.Position = framePosition
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"
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
guiEnabled = 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)
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
guiEnabled = 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 VARIABLES
local flying = false
local speed = 2
local bodyGyro
local bodyVel
-- 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 FUNCTION
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)
RunService.Heartbeat:Connect(function()
if flying then
local char = player.Character
local root = char:FindFirstChild("HumanoidRootPart")
if root then
local vel = Vector3.new()
if UIS:IsKeyDown(Enum.KeyCode.W) then vel = vel + root.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.S) then vel = vel - root.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.A) then vel = vel - root.CFrame.RightVector end
if UIS:IsKeyDown(Enum.KeyCode.D) then vel = vel + root.CFrame.RightVector end
bodyVel.Velocity = vel * (speed * 10)
bodyGyro.CFrame = workspace.CurrentCamera.CFrame
end
end
end)
-- RESPWAN HANDLING
player.CharacterAdded:Connect(function(char)
wait(1) -- tunggu karakter muncul
-- Restore frame posisi & state
frame.Position = framePosition
frame.Size = minimized and UDim2.new(0, 280, 0, 30) or UDim2.new(0, 280, 0, 260)
gui.Enabled = guiEnabled
-- Jika fly sebelumnya ON, tetap ON
if flying then
startFly()
end
end)
-- Update posisi terakhir jika frame dipindah
frame:GetPropertyChangedSignal("Position"):Connect(function()
framePosition = frame.Position
end)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment