local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local character, humanoid, root local animTrackConnection, diedConnection local function stopAllAnimations() if humanoid then for _, track in pairs(humanoid:GetPlayingAnimationTracks()) do track:Stop(0) end end end local function resetJoints() if character then for _, v in pairs(character:GetDescendants()) do -- تجنب تعديل مفاصل الأدوات لضمان عملها بشكل طبيعي أثناء الطيران if v:IsA("Motor6D") and v.Name ~= "RightGrip" then v.Transform = CFrame.new() end end end end local flying = false local flySpeed = 1 local bv, bg local function stopFly() flying = false if bv then bv:Destroy(); bv = nil end if bg then bg:Destroy(); bg = nil end if animTrackConnection then animTrackConnection:Disconnect(); animTrackConnection = nil end if humanoid then humanoid.PlatformStand = false local anim = character and character:FindFirstChild("Animate") if anim then anim.Disabled = false end end local mainGui = LocalPlayer.PlayerGui:FindFirstChild("TarekScripter_Fly") if mainGui then local frame = mainGui:FindFirstChild("Frame") if frame then local onofBtn = frame:FindFirstChild("onof") if onofBtn then onofBtn.TextColor3 = Color3.new(1, 0, 0) end end end end local function updateVars(newChar) stopFly() character = newChar humanoid = character:WaitForChild("Humanoid") root = character:WaitForChild("HumanoidRootPart") if diedConnection then diedConnection:Disconnect() end diedConnection = humanoid.Died:Connect(function() stopFly() end) end if LocalPlayer.Character then updateVars(LocalPlayer.Character) end LocalPlayer.CharacterAdded:Connect(updateVars) local main = Instance.new("ScreenGui") main.Name = "TarekScripter_Fly" main.ResetOnSpawn = false main.Parent = LocalPlayer:WaitForChild("PlayerGui") local Frame = Instance.new("Frame", main) Frame.BackgroundColor3 = Color3.fromRGB(163, 255, 137) Frame.Position = UDim2.new(0.1, 0, 0.38, 0) Frame.Size = UDim2.new(0, 190, 0, 57) Frame.Active = true Frame.Draggable = true local function createBtn(name, text, pos, size, color) local b = Instance.new("TextButton", Frame) b.Name = name b.Text = text b.Position = pos b.Size = size b.BackgroundColor3 = color b.Font = Enum.Font.SourceSans b.TextColor3 = Color3.new(0,0,0) b.TextSize = 14 b.TextScaled = true return b end local adminSim = createBtn("adminSim", "محاكاه ادمن", UDim2.new(0, 0, 0, 0), UDim2.new(0, 44, 0, 57), Color3.fromRGB(79, 255, 152)) local adminEnabled = false local onof = createBtn("onof", "fly", UDim2.new(0.7, 0, 0.49, 0), UDim2.new(0, 56, 0, 28), Color3.fromRGB(255, 249, 74)) local plus = createBtn("plus", "+", UDim2.new(0.23, 0, 0, 0), UDim2.new(0, 45, 0, 28), Color3.fromRGB(133, 145, 255)) local mine = createBtn("mine", "-", UDim2.new(0.23, 0, 0.49, 0), UDim2.new(0, 45, 0, 29), Color3.fromRGB(123, 255, 247)) local TextLabel = Instance.new("TextLabel", Frame) TextLabel.BackgroundColor3 = Color3.fromRGB(242, 60, 255) TextLabel.Position = UDim2.new(0.47, 0, 0, 0) TextLabel.Size = UDim2.new(0, 100, 0, 28) TextLabel.Text = "TarekScripter" TextLabel.TextScaled = true local speedLabel = Instance.new("TextLabel", Frame) speedLabel.BackgroundColor3 = Color3.fromRGB(255, 85, 0) speedLabel.Position = UDim2.new(0.47, 0, 0.49, 0) speedLabel.Size = UDim2.new(0, 44, 0, 28) speedLabel.Text = "1" speedLabel.TextScaled = true local closebutton = createBtn("Close", "X", UDim2.new(0, 0, -1, 27), UDim2.new(0, 45, 0, 28), Color3.fromRGB(225, 25, 0)) local mini = createBtn("mini", "-", UDim2.new(0, 44, -1, 27), UDim2.new(0, 45, 0, 28), Color3.fromRGB(192, 150, 230)) local keybindBtn = createBtn("keybindBtn", "key Z", UDim2.new(0.89, 0, -1, 27), UDim2.new(0, 55, 0, 28), Color3.fromRGB(255, 170, 0)) local infoLabel = Instance.new("TextLabel", Frame) infoLabel.Name = "infoLabel" infoLabel.BackgroundColor3 = Color3.fromRGB(255, 200, 100) infoLabel.Position = UDim2.new(1.18, 0, -1, 27) infoLabel.Size = UDim2.new(0, 85, 0, 28) infoLabel.Text = "F1 to change" infoLabel.Font = Enum.Font.SourceSansBold infoLabel.TextColor3 = Color3.new(0, 0, 0) infoLabel.TextScaled = true local flyKey = Enum.KeyCode.Z local listeningForKey = false local blockedKeys = { [Enum.KeyCode.W] = true, [Enum.KeyCode.A] = true, [Enum.KeyCode.S] = true, [Enum.KeyCode.D] = true, [Enum.KeyCode.One] = true, [Enum.KeyCode.Two] = true, [Enum.KeyCode.Three] = true, [Enum.KeyCode.Four] = true, [Enum.KeyCode.Five] = true, [Enum.KeyCode.Six] = true, [Enum.KeyCode.Seven] = true, [Enum.KeyCode.Eight] = true, [Enum.KeyCode.Nine] = true, [Enum.KeyCode.F1] = true, } local currentVelocity = Vector3.new(0, 0, 0) local lastMoveDir = Vector3.new(0, 0, 0) local stopTime = 0 adminSim.MouseButton1Click:Connect(function() adminEnabled = not adminEnabled adminSim.BackgroundColor3 = adminEnabled and Color3.fromRGB(255, 100, 100) or Color3.fromRGB(79, 255, 152) end) local function startFly() if not root or not humanoid or humanoid.Health <= 0 then return end flying = true currentVelocity = Vector3.new(0, 0, 0) onof.TextColor3 = Color3.new(0, 0.6, 0) local anim = character:FindFirstChild("Animate") if anim then anim.Disabled = true end stopAllAnimations() resetJoints() humanoid.PlatformStand = true bv = Instance.new("BodyVelocity", root) bv.MaxForce = Vector3.new(1e6, 1e6, 1e6) bv.Velocity = Vector3.new(0, 0, 0) bg = Instance.new("BodyGyro", root) bg.MaxTorque = Vector3.new(1e6, 1e6, 1e6) bg.CFrame = root.CFrame if adminEnabled then local bp = Instance.new("BodyPosition", root) bp.MaxForce = Vector3.new(0, math.huge, 0) bp.D = 750; bp.P = 5000 bp.Position = root.Position + Vector3.new(0, 7, 0) task.delay(0.5, function() if bp then bp:Destroy() end end) end end local function toggleFly() if flying then stopFly() else startFly() end end onof.MouseButton1Click:Connect(toggleFly) local function startKeyListening() listeningForKey = true keybindBtn.Text = "chng key:" keybindBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 100) end keybindBtn.MouseButton1Click:Connect(startKeyListening) local inputConnection = UserInputService.InputBegan:Connect(function(input, gameProcessed) if input.UserInputType ~= Enum.UserInputType.Keyboard then return end if listeningForKey then if not blockedKeys[input.KeyCode] then flyKey = input.KeyCode keybindBtn.Text = "key " .. input.KeyCode.Name listeningForKey = false keybindBtn.BackgroundColor3 = Color3.fromRGB(255, 170, 0) end return end if input.KeyCode == Enum.KeyCode.F1 then startKeyListening() return end if gameProcessed then return end if flyKey and input.KeyCode == flyKey then toggleFly() end end) plus.MouseButton1Click:Connect(function() flySpeed = flySpeed + 1 speedLabel.Text = tostring(flySpeed) end) mine.MouseButton1Click:Connect(function() if flySpeed > 1 then flySpeed = flySpeed - 1 speedLabel.Text = tostring(flySpeed) end end) local PlayerModule = require(LocalPlayer.PlayerScripts:WaitForChild("PlayerModule")) local Controls = PlayerModule:GetControls() local renderConnection = RunService.RenderStepped:Connect(function(deltaTime) if flying and root and bv and humanoid and humanoid.Health > 0 then local cam = workspace.CurrentCamera local moveVector = Controls:GetMoveVector() if moveVector.Magnitude > 0 then local forward = cam.CFrame.LookVector * -moveVector.Z local side = cam.CFrame.RightVector * moveVector.X local targetVelocity = (forward + side).Unit * (flySpeed * 60) if adminEnabled then currentVelocity = currentVelocity:Lerp(targetVelocity, math.clamp(deltaTime * 10, 0, 1)) else currentVelocity = targetVelocity end lastMoveDir = currentVelocity stopTime = os.clock() else if adminEnabled then local elapsed = os.clock() - stopTime local glideDuration = 0.4 if elapsed < glideDuration then local alpha = 1 - (elapsed / glideDuration) currentVelocity = lastMoveDir * (alpha * alpha) else currentVelocity = Vector3.new(0, 0, 0) end else currentVelocity = Vector3.new(0, 0, 0) end end bv.Velocity = currentVelocity if bg then bg.CFrame = cam.CFrame end if humanoid then humanoid.PlatformStand = true end end end) closebutton.MouseButton1Click:Connect(function() stopFly() if inputConnection then inputConnection:Disconnect() end if renderConnection then renderConnection:Disconnect() end if diedConnection then diedConnection:Disconnect() end main:Destroy() end) local isMini = false mini.MouseButton1Click:Connect(function() isMini = not isMini for _, v in pairs(Frame:GetChildren()) do if v ~= mini and v ~= closebutton then v.Visible = not isMini end end Frame.BackgroundTransparency = isMini and 1 or 0 mini.Text = isMini and "+" or "-" end)