script invisible
Key RequiredUniversal

script invisible

Universal Scriptkeanen01keanen01 544 views 341 executesUpdated Jun 19, 2026
Unrated
00
Lua Script•555 lines (14059 chars)
-- DELTA EXECUTOR - FLY + ANİMASYON (ÇARPIŞMA ENGELLİ) + FOV + MOMENTUM YOK
local player = game.Players.LocalPlayer
local runService = game:GetService("RunService")
local userInputService = game:GetService("UserInputService")

local flying = false
local flyConnection = nil
local flyBodyVelocity = nil
local currentAnimTrack = nil
local currentDirection = "IDLE"

-- ========== FOV ==========
local normalFOV = 70
local wPressedFOV = 120
local isWPressed = false
local fovEnabled = true

-- ========== ANİMASYON ID'LERİ ==========
local ANIMATIONS = {
	FORWARD = "rbxassetid://102836456555620",
	BACKWARD = "rbxassetid://102836456555620",
	RIGHT = "rbxassetid://102836456555620",
	LEFT = "rbxassetid://102836456555620",
	UP = "rbxassetid://102836456555620",
	DOWN = "rbxassetid://102836456555620",
	IDLE = "rbxassetid://107218891171080",
}

-- ========== TUŞLAR ==========
local keys = {W=false, S=false, A=false, D=false, Space=false, Control=false}

-- ========== KARAKTER BUL ==========
local function getRoot()
	local char = player.Character
	if not char then return nil end
	return char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("RootPart") or char.PrimaryPart
end

local function getHumanoid()
	local char = player.Character
	if not char then return nil end
	return char:FindFirstChildOfClass("Humanoid")
end

-- ========== ANİMASYON FONKSİYONLARI ==========
local function stopAllAnimations(humanoid)
	if not humanoid then return end
	pcall(function()
		local animator = humanoid:FindFirstChildOfClass("Animator")
		if animator then
			for _, track in pairs(animator:GetPlayingAnimationTracks()) do
				track:Stop()
			end
		end
	end)
end

local function changeAnimation(direction)
	if not flying then return end

	local humanoid = getHumanoid()
	if not humanoid then return end

	if currentDirection == direction and currentAnimTrack and currentAnimTrack.IsPlaying then 
		return 
	end

	local animationId = ANIMATIONS[direction]
	if not animationId then return end

	if currentAnimTrack then
		pcall(function()
			currentAnimTrack:Stop()
			currentAnimTrack = nil
		end)
	end

	pcall(function()
		local animator = humanoid:FindFirstChildOfClass("Animator")
		local anim = Instance.new("Animation")
		anim.AnimationId = animationId

		if animator then
			currentAnimTrack = animator:LoadAnimation(anim)
		else
			currentAnimTrack = humanoid:LoadAnimation(anim)
		end

		if currentAnimTrack then
			currentAnimTrack.Looped = true
			currentAnimTrack:Play()
		end
	end)

	currentDirection = direction
end

-- ========== GRAVITY ==========
local function setGravity(val)
	pcall(function()
		workspace.Gravity = val
	end)
end

-- ========== FOV ==========
local function setFOV(val)
	if not fovEnabled then return end
	pcall(function()
		workspace.CurrentCamera.FieldOfView = val
	end)
end

local function updateFOV()
	if isWPressed and flying then
		setFOV(wPressedFOV)
	else
		setFOV(normalFOV)
	end
end

-- ========== KARAKTERİ KAMERAYA DÖNDÜR ==========
local function faceCamera()
	local root = getRoot()
	local camera = workspace.CurrentCamera
	if not root or not camera then return end

	pcall(function()
		local look = camera.CFrame.LookVector
		local hLook = Vector3.new(look.X, 0, look.Z)
		if hLook.Magnitude > 0.1 then
			hLook = hLook.Unit
			root.CFrame = CFrame.lookAt(root.Position, root.Position + hLook)
		end
	end)
end

-- ========== HAREKET ==========
local function move(dir)
	local root = getRoot()
	if not root then return end

	if dir.Magnitude > 0.1 then
		dir = dir.Unit

		local cam = workspace.CurrentCamera
		local forward = cam.CFrame.LookVector
		local right = cam.CFrame.RightVector
		local up = cam.CFrame.UpVector

		local vel = (forward * dir.Z + right * dir.X + up * dir.Y).Unit * 100

		-- BodyVelocity
		if not flyBodyVelocity or flyBodyVelocity.Parent == nil then
			flyBodyVelocity = Instance.new("BodyVelocity")
			flyBodyVelocity.MaxForce = Vector3.new(1, 1, 1) * 9999999
			flyBodyVelocity.Parent = root
		end
		flyBodyVelocity.Velocity = vel

		-- Velocity
		pcall(function()
			root.Velocity = vel
			root.AssemblyLinearVelocity = vel
		end)
	else
		if flyBodyVelocity then
			flyBodyVelocity:Destroy()
			flyBodyVelocity = nil
		end
		pcall(function()
			local root = getRoot()
			if root then
				root.Velocity = Vector3.new(0, 0, 0)
				root.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
			end
		end)
	end
end

-- ========== ÇARPIŞMA ENGELLEYİCİ (MOMENTUM + ANİMASYON) ==========
local function setupCollisionBlocker()
	local char = player.Character
	if not char then return end

	for _, part in pairs(char:GetDescendants()) do
		if part:IsA("BasePart") then
			part.Touched:Connect(function(hit)
				if not flying then return end

				-- Sadece oyuncuya veya yere çarptığında çalışsın
				if hit and hit.Parent and hit.Parent:FindFirstChildOfClass("Humanoid") then
					return -- Başka oyuncuya çarptıysa işlem yapma
				end

				-- ===== MOMENTUMU SIFIRLA =====
				local root = getRoot()
				if root then
					pcall(function()
						root.Velocity = Vector3.new(0, 0, 0)
						root.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
						root.RotVelocity = Vector3.new(0, 0, 0)
						root.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
					end)
				end

				-- ===== BODYVELOCITY'Yİ YENİDEN OLUŞTUR =====
				if flyBodyVelocity then
					pcall(function()
						flyBodyVelocity:Destroy()
						flyBodyVelocity = nil
					end)
				end

				-- ===== ANİMASYON ÇAKIŞMASINI ENGELLE =====
				local hum = getHumanoid()
				if hum then
					-- Tüm animasyonları durdur
					stopAllAnimations(hum)

					-- Sadece uçuş animasyonunu oynat
					if currentAnimTrack then
						pcall(function()
							currentAnimTrack:Play()
						end)
					else
						changeAnimation("IDLE")
					end
				end

				-- ===== YÜRÜME HIZINI SIFIRLA =====
				if hum then
					pcall(function()
						hum.WalkSpeed = 0
						hum.JumpPower = 0
						hum.PlatformStand = false
					end)
				end
			end)
		end
	end
end

-- ========== INPUT ==========
userInputService.InputBegan:Connect(function(input)
	local key = input.KeyCode
	if key == Enum.KeyCode.W then keys.W = true; isWPressed = true; updateFOV()
	elseif key == Enum.KeyCode.S then keys.S = true
	elseif key == Enum.KeyCode.A then keys.A = true
	elseif key == Enum.KeyCode.D then keys.D = true
	elseif key == Enum.KeyCode.Space then keys.Space = true
	elseif key == Enum.KeyCode.LeftControl then keys.Control = true
	end
end)

userInputService.InputEnded:Connect(function(input)
	local key = input.KeyCode
	if key == Enum.KeyCode.W then keys.W = false; isWPressed = false; updateFOV()
	elseif key == Enum.KeyCode.S then keys.S = false
	elseif key == Enum.KeyCode.A then keys.A = false
	elseif key == Enum.KeyCode.D then keys.D = false
	elseif key == Enum.KeyCode.Space then keys.Space = false
	elseif key == Enum.KeyCode.LeftControl then keys.Control = false
	end
end)

-- ========== UÇUŞ ==========
function toggleFly()
	flying = not flying

	if flying then
		setGravity(0)

		local hum = getHumanoid()
		if hum then
			hum.WalkSpeed = 0
			hum.JumpPower = 0
			hum.PlatformStand = false
			hum.AutoRotate = true
		end

		stopAllAnimations(hum)
		changeAnimation("IDLE")

		-- Çarpışma engelleyiciyi kur
		setupCollisionBlocker()

		print("✅ UÇUŞ + ANİMASYON + ÇARPIŞMA ENGELLEYİCİ BAŞLADI!")
		print("🛡️ Çarpışma anında momentum SIFIRLANIR!")
		print("🛡️ Yürüme animasyonu ENGELLENİR!")

		flyConnection = runService.RenderStepped:Connect(function()
			if not flying then return end

			local root = getRoot()
			local hum = getHumanoid()
			if not root or not hum then return end

			-- Gravity kontrol
			if workspace.Gravity ~= 0 then
				workspace.Gravity = 0
			end

			-- WalkSpeed kontrol
			if hum.WalkSpeed ~= 0 then
				hum.WalkSpeed = 0
				hum.JumpPower = 0
			end

			-- Karakteri kameraya döndür
			faceCamera()

			-- Hareket vektörü
			local moveVec = Vector3.new()
			if keys.W then moveVec = moveVec + Vector3.new(0, 0, 1) end
			if keys.S then moveVec = moveVec + Vector3.new(0, 0, -1) end
			if keys.A then moveVec = moveVec + Vector3.new(-1, 0, 0) end
			if keys.D then moveVec = moveVec + Vector3.new(1, 0, 0) end
			if keys.Space then moveVec = moveVec + Vector3.new(0, 1, 0) end
			if keys.Control then moveVec = moveVec + Vector3.new(0, -1, 0) end

			-- ANİMASYON GÜNCELLE
			local direction = "IDLE"
			if moveVec.Magnitude > 0.1 then
				if math.abs(moveVec.Z) > math.abs(moveVec.X) then
					if moveVec.Z > 0 then direction = "FORWARD"
					else direction = "BACKWARD"
					end
				else
					if moveVec.X > 0 then direction = "RIGHT"
					else direction = "LEFT"
					end
				end

				if moveVec.Y > 0.5 then 
					direction = "UP"
				elseif moveVec.Y < -0.5 then 
					direction = "DOWN"
				end
			end
			changeAnimation(direction)

			-- HAREKET ET
			move(moveVec)
			updateFOV()
		end)
	else
		if flyConnection then
			flyConnection:Disconnect()
			flyConnection = nil
		end

		if flyBodyVelocity then
			flyBodyVelocity:Destroy()
			flyBodyVelocity = nil
		end

		setGravity(196.2)
		setFOV(normalFOV)

		if currentAnimTrack then
			pcall(function()
				currentAnimTrack:Stop()
				currentAnimTrack = nil
			end)
		end

		local hum = getHumanoid()
		if hum then
			hum.WalkSpeed = 16
			hum.JumpPower = 50
			hum.PlatformStand = false
			hum.AutoRotate = true
		end

		local root = getRoot()
		if root then
			root.Velocity = Vector3.new(0, 0, 0)
			root.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
			root.RotVelocity = Vector3.new(0, 0, 0)
			root.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
		end

		currentDirection = "IDLE"
		print("❌ UÇUŞ DURDU!")
	end
end

-- ========== FOV BUTONU ==========
local function createFOVButton()
	local gui = Instance.new("ScreenGui")
	gui.Name = "FOVBtn"
	gui.Parent = player:WaitForChild("PlayerGui")
	gui.ResetOnSpawn = false

	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(0, 40, 0, 40)
	btn.Position = UDim2.new(0.02, 0, 0.42, 0)
	btn.BackgroundColor3 = Color3.fromRGB(0, 200, 100)
	btn.TextColor3 = Color3.fromRGB(255, 255, 255)
	btn.TextScaled = true
	btn.Text = "👁"
	btn.Font = Enum.Font.GothamBold
	btn.BorderSizePixel = 0
	btn.Parent = gui

	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(0.5, 0)
	corner.Parent = btn

	btn.MouseButton1Click:Connect(function()
		fovEnabled = not fovEnabled
		btn.BackgroundColor3 = fovEnabled and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(200, 50, 50)
		if not fovEnabled then
			setFOV(normalFOV)
		end
	end)
end

-- ========== FLY BUTONU ==========
local function createFlyButton()
	local gui = Instance.new("ScreenGui")
	gui.Name = "FlyBtn"
	gui.Parent = player:WaitForChild("PlayerGui")
	gui.ResetOnSpawn = false

	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(0, 80, 0, 80)
	btn.Position = UDim2.new(0.85, 0, 0.05, 0)
	btn.BackgroundColor3 = Color3.fromRGB(0, 200, 255)
	btn.TextColor3 = Color3.fromRGB(255, 255, 255)
	btn.TextScaled = true
	btn.Text = "✈️"
	btn.Font = Enum.Font.GothamBold
	btn.BorderSizePixel = 0
	btn.Parent = gui

	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(0.5, 0)
	corner.Parent = btn

	btn.MouseButton1Click:Connect(function()
		toggleFly()
		btn.Text = flying and "🛑" or "✈️"
		btn.BackgroundColor3 = flying and Color3.fromRGB(255, 50, 50) or Color3.fromRGB(0, 200, 255)
	end)
end

-- ========== BAŞLAT ==========
createFlyButton()
createFOVButton()

-- ========== KARAKTER YENİDEN DOĞARSA ==========
player.CharacterAdded:Connect(function()
	if flying then
		if flyConnection then
			flyConnection:Disconnect()
			flyConnection = nil
		end
		if flyBodyVelocity then
			flyBodyVelocity:Destroy()
			flyBodyVelocity = nil
		end
		if currentAnimTrack then
			currentAnimTrack:Stop()
			currentAnimTrack = nil
		end
		flying = false
		wait(0.5)
		toggleFly()
	end
	currentDirection = "IDLE"
end)
-- TEST SCRIPT - HANGİ YÖNTEM ÇALIŞIYOR?
local player = game.Players.LocalPlayer
local runService = game:GetService("RunService")

local root = player.Character and player.Character:FindFirstChild("HumanoidRootPart")

if not root then
	print("❌ RootPart BULUNAMADI!")
	print("🔍 Alternatif isimler denenmeli!")

	-- Alternatif isimleri dene
	local char = player.Character
	if char then
		print("📌 Character'deki parçalar:")
		for _, part in pairs(char:GetChildren()) do
			if part:IsA("BasePart") then
				print("   - " .. part.Name)
			end
		end
	end
else
	print("✅ RootPart BULUNDU: " .. root.Name)
end

-- ===== GRAVITY TEST =====
print("\n🔬 GRAVITY TESTİ:")
local oldGravity = workspace.Gravity
pcall(function()
	workspace.Gravity = 0
	print("   Gravity 0 yapıldı: " .. workspace.Gravity)
	wait(0.5)
	workspace.Gravity = oldGravity
	print("   Gravity eski haline döndü: " .. workspace.Gravity)
end)

-- ===== VELOCITY TEST =====
print("\n🔬 VELOCITY TESTİ:")
if root then
	pcall(function()
		root.Velocity = Vector3.new(0, 50, 0)
		print("   Velocity uygulandı: " .. tostring(root.Velocity))
		wait(0.5)
		print("   0.5 saniye sonra: " .. tostring(root.Velocity))
	end)
end

-- ===== BODYVELOCITY TEST =====
print("\n🔬 BODYVELOCITY TESTİ:")
if root then
	pcall(function()
		local bv = Instance.new("BodyVelocity")
		bv.MaxForce = Vector3.new(1, 1, 1) * 999999
		bv.Velocity = Vector3.new(0, 50, 0)
		bv.Parent = root
		print("   BodyVelocity oluşturuldu!")
		wait(0.5)
		bv:Destroy()
		print("   BodyVelocity silindi!")
	end)
end

-- ===== CFrame TEST =====
print("\n🔬 CFRAME TESTİ:")
if root then
	pcall(function()
		local oldPos = root.Position
		root.CFrame = root.CFrame + Vector3.new(0, 10, 0)
		print("   CFrame ile yukarı çıkıldı!")
		wait(0.5)
		root.CFrame = CFrame.new(oldPos)
		print("   Eski konuma dönüldü!")
	end)
end

print("\n📊 TEST SONUÇLARI:")
print("✅ Hangi yöntem çalıştıysa ONU KULLAN!")
print("📝 Hata mesajlarını konsoldan kontrol et!")
print("🚀 FLY + ANİMASYON + ÇARPIŞMA ENGELLEYİCİ YÜKLENDİ!")
print("🎬 Animasyonlar AKTİF!")
print("🛡️ Çarpışma anında MOMENTUM SIFIRLANIR!")
print("🛡️ Çarpışma anında YÜRÜME ANİMASYONU ENGELLENİR!")
print("📊 W tuşu = FOV değişimi")
print("👁 FOV aç/kapa")

Features & Information

you can fly

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts