
KeylessUniversal

local gui = Instance.new("ScreenGui")
gui.Name = "FlappyBirdGame"
gui.IgnoreGuiInset = true
gui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
local gameFrame = Instance.new("Frame")
gameFrame.Size = UDim2.new(1, 0, 1, 0)
gameFrame.BackgroundColor3 = Color3.fromRGB(77, 194, 203)
gameFrame.Parent = gui
local bird = Instance.new("ImageLabel")
bird.Size = UDim2.new(0, 41, 0, 30)
bird.Position = UDim2.new(0.2, -16, 0.9, -15)
bird.BackgroundTransparency = 1
bird.Parent = gameFrame
local birdFrames = {
"rbxassetid://96051635244958",
"rbxassetid://104480021254835",
"rbxassetid://76745734370381"
}
local currentFrame = 1
local function animateBird()
while true do
bird.Image = birdFrames[currentFrame]
currentFrame = currentFrame % #birdFrames + 1
wait(0.1)
end
end
spawn(animateBird)
local jumpButton = Instance.new("ImageButton")
jumpButton.Size = UDim2.new(0, 83, 0, 83)
jumpButton.Position = UDim2.new(0.5, -50, 0.7, -50)
jumpButton.Image = "rbxassetid://119291898564586"
jumpButton.BackgroundTransparency = 1
jumpButton.ZIndex = 2
jumpButton.Parent = gameFrame
local isGameOver = false
local birdVelocity = 0
local function jump()
if not isGameOver then
birdVelocity = -15
jumpButton.Image = "rbxassetid://91140047005345"
wait(0.05)
jumpButton.Image = "rbxassetid://119291898564586"
end
end
jumpButton.MouseButton1Click:Connect(jump)
local exitButton = Instance.new("TextButton")
local corner = Instance.new("UICorner")
exitButton.Size = UDim2.new(0, 50, 0, 45)
exitButton.Position = UDim2.new(1, -70, 0, 10)
exitButton.Text = "X"
exitButton.TextSize = 24
exitButton.Font = "FredokaOne"
exitButton.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
exitButton.TextColor3 = Color3.fromRGB(255, 255, 255)
exitButton.ZIndex = 3
exitButton.Parent = gameFrame
corner.CornerRadius = UDim.new(0, 40)
corner.Parent = exitButton
local function createPipe(height, isTop)
local pipe = Instance.new("ImageLabel")
pipe.Size = UDim2.new(0, 50, 0, height)
pipe.Image = "rbxassetid://93518102403011"
pipe.BackgroundTransparency = 1
pipe.BorderSizePixel = 0
if isTop then
pipe.Position = UDim2.new(1, 0, 0, 0)
pipe.Rotation = 180
else
pipe.Position = UDim2.new(1, 0, 1, -height)
end
pipe.Parent = gameFrame
return pipe
end
local function checkCollision()
for _, child in ipairs(gameFrame:GetChildren()) do
if child:IsA("ImageLabel") and child.Image == "rbxassetid://93518102403011" then
local birdPos = bird.AbsolutePosition
local birdSize = bird.AbsoluteSize
local pipePos = child.AbsolutePosition
local pipeSize = child.AbsoluteSize
if birdPos.X < pipePos.X + pipeSize.X and birdPos.X + birdSize.X > pipePos.X and
birdPos.Y < pipePos.Y + pipeSize.Y and birdPos.Y + birdSize.Y > pipePos.Y then
return true
end
end
end
return false
end
local function gameLoop()
while true do
if isGameOver then
bird.Position = UDim2.new(0.2, -15, 0.5, -15)
birdVelocity = 0
jumpButton.Visible = true
for _, child in ipairs(gameFrame:GetChildren()) do
if child:IsA("ImageLabel") and child.Image == "rbxassetid://93518102403011" then
child:Destroy()
end
end
isGameOver = false
else
birdVelocity = birdVelocity + 2
bird.Position = bird.Position + UDim2.new(0, 0, 0, birdVelocity)
if checkCollision() or bird.Position.Y.Offset > gameFrame.AbsoluteSize.Y - 50 then
isGameOver = true
jumpButton.Visible = false
end
if math.random(1, 20) == 1 then
local pipeHeight = math.random(100, gameFrame.AbsoluteSize.Y - 200)
createPipe(pipeHeight, true)
createPipe(gameFrame.AbsoluteSize.Y - pipeHeight - 150, false)
end
for _, child in ipairs(gameFrame:GetChildren()) do
if child:IsA("ImageLabel") and child.Image == "rbxassetid://93518102403011" then
child.Position = child.Position - UDim2.new(0.02, 0, 0, 0)
if child.Position.X.Scale < -0.1 then
child:Destroy()
end
end
end
end
wait(0.05)
end
end
spawn(gameLoop)
exitButton.MouseButton1Click:Connect(function()
gui:Destroy()
end)



3rd repost skull