script fun fly
Key RequiredUniversal

script fun fly

Universal ScriptSiheonSiheon 325 views 405 executesUpdated Feb 15, 2026
Unrated
00
Lua Script•337 lines (8492 chars)
-- 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)

Features & Information

다시 만듬

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts