Run it
Copy the script and paste it into your executor.
player = .Players.LocalPlayer
gui = .(, player:())
gui.Name =
gui.ResetOnSpawn =
gameFrame = .()
gameFrame.Size = .(, , , )
gameFrame.Position = .(, -, , -)
gameFrame.BackgroundColor3 = .(, , )
gameFrame.BorderSizePixel =
gameFrame.Parent = gui
playerBox = .()
playerBox.Size = .(, , , )
playerBox.Position = .(, , , )
playerBox.BackgroundColor3 = .(, , )
playerBox.Parent = gameFrame
playerHP =
hpText = .()
hpText.Size = .(, , , )
hpText.Position = .(, , , )
hpText.BackgroundTransparency =
hpText.TextColor3 = .(, , )
hpText.TextScaled =
hpText.Text = .. playerHP
hpText.Parent = gameFrame
score =
scoreText = .()
scoreText.Size = .(, , , )
scoreText.Position = .(, -, , )
scoreText.BackgroundTransparency =
scoreText.TextColor3 = .(, , )
scoreText.TextScaled =
scoreText.Text =
scoreText.Parent = gameFrame
canShoot =
shootDelay =
shieldActive =
alive =
enemiesEscaped =
maxEscapes =
maxScore =
buttonSize =
leftButton = .(, gui)
leftButton.Size = .(, buttonSize, , buttonSize)
leftButton.Position = .(, , , -)
leftButton.Text =
leftButton.TextScaled =
leftButton.BackgroundColor3 = .(, , )
rightButton = .(, gui)
rightButton.Size = .(, buttonSize, , buttonSize)
rightButton.Position = .(, , , -)
rightButton.Text =
rightButton.TextScaled =
rightButton.BackgroundColor3 = .(, , )
upButton = .(, gui)
upButton.Size = .(, buttonSize, , buttonSize)
upButton.Position = .(, , , -)
upButton.Text =
upButton.TextScaled =
upButton.BackgroundColor3 = .(, , )
downButton = .(, gui)
downButton.Size = .(, buttonSize, , buttonSize)
downButton.Position = .(, , , -)
downButton.Text =
downButton.TextScaled =
downButton.BackgroundColor3 = .(, , )
shootButton = .(, gui)
shootButton.Size = .(, , , )
shootButton.Position = .(, -, , -)
shootButton.Text =
shootButton.TextScaled =
shootButton.BackgroundColor3 = .(, , )
moveLeft, moveRight, moveUp, moveDown = , , ,
leftButton.MouseButton1Down:(() moveLeft = )
leftButton.MouseButton1Up:(() moveLeft = )
rightButton.MouseButton1Down:(() moveRight = )
rightButton.MouseButton1Up:(() moveRight = )
upButton.MouseButton1Down:(() moveUp = )
upButton.MouseButton1Up:(() moveUp = )
downButton.MouseButton1Down:(() moveDown = )
downButton.MouseButton1Up:(() moveDown = )
(reason)
alive
alive =
msg = .()
msg.Size = .(, , , )
msg.Position = .(, -, , )
msg.BackgroundTransparency =
msg.TextColor3 = .(, , )
msg.TextScaled =
msg.Text = reason
msg.Parent = gui
restart = .()
restart.Size = .(, , , )
restart.Position = .(, -, , -)
restart.Text =
restart.TextScaled =
restart.BackgroundColor3 = .(, , )
restart.Parent = gui
restart.MouseButton1Click:(()
gui:()
)
()
canShoot alive
canShoot =
bullet = .()
bullet.Size = .(, , , )
bullet.BackgroundColor3 = .(, , )
bullet.Position = .(, playerBox.Position.X.Offset + , , playerBox.Position.Y.Offset - )
bullet.Parent = gameFrame
.(()
bullet bullet.Parent bullet.Position.Y.Offset > -
bullet.Position = .(, bullet.Position.X.Offset, , bullet.Position.Y.Offset - )
_, enemy (gameFrame:())
enemy.Name ==
.(enemy.Position.X.Offset - bullet.Position.X.Offset) <
.(enemy.Position.Y.Offset - bullet.Position.Y.Offset) <
enemy:()
bullet:()
score +=
scoreText.Text = .. score
score >= maxScore
()
.()
bullet bullet:()
)
.(shootDelay)
canShoot =
shootButton.MouseButton1Click:(shoot)
.(()
.()
alive
enemy = .()
enemy.Size = .(, , , )
enemy.Position = .(, .(, ), , )
enemy.BackgroundColor3 = .(, , )
enemy.Name =
enemy.Parent = gameFrame
.(()
enemy.Parent alive
enemy.Position = .(, enemy.Position.X.Offset, , enemy.Position.Y.Offset + )
enemy.Position.Y.Offset >=
enemiesEscaped +=
enemy:()
enemiesEscaped >= maxEscapes
()
.()
)
.(()
enemy enemy.Parent alive
.(.(, ))
alive enemy.Parent
eb = .()
eb.Size = .(, , , )
eb.BackgroundColor3 = .(, , )
eb.Position = .(, enemy.Position.X.Offset + , , enemy.Position.Y.Offset + )
eb.Parent = gameFrame
.(()
eb eb.Parent eb.Position.Y.Offset < alive
eb.Position = .(, eb.Position.X.Offset, , eb.Position.Y.Offset + )
shieldActive
.(eb.Position.Y.Offset - playerBox.Position.Y.Offset) <
.(eb.Position.X.Offset - playerBox.Position.X.Offset) < alive
playerHP -=
hpText.Text = .. playerHP
eb:()
playerHP <=
()
.()
eb eb:()
)
)
)
.(()
.()
alive
power = .()
power.Size = .(, , , )
power.Position = .(, .(, ), , .(, ))
isShield = .() >
power.BackgroundColor3 = isShield .(, , ) .(, , )
power.Name =
power.Parent = gameFrame
.(()
power.Parent alive
.()
alive power.Parent
dx = .(power.Position.X.Offset - playerBox.Position.X.Offset)
dy = .(power.Position.Y.Offset - playerBox.Position.Y.Offset)
dx < dy <
power:()
popup = .()
popup.Size = .(, , , )
popup.Position = .(, playerBox.Position.X.Offset - , , playerBox.Position.Y.Offset - )
popup.BackgroundTransparency =
popup.TextScaled =
popup.TextColor3 = .(, , )
popup.Parent = gameFrame
isShield
popup.Text =
shieldActive =
playerBox.BackgroundColor3 = .(, , )
.(()
.()
alive
shieldActive =
playerBox.BackgroundColor3 = .(, , )
)
popup.Text =
oldDelay = shootDelay
shootDelay =
.(()
.()
alive
shootDelay = oldDelay
)
.(()
i = ,
popup.Position = popup.Position - .(, , , )
popup.TextTransparency = i /
.()
popup:()
)
power power.Parent
.()
power power:()
)
)
(Boundaries)
.(()
.()
alive
x, y = playerBox.Position.X.Offset, playerBox.Position.Y.Offset
moveLeft x = .(, x - )
moveRight x = .(, x + )
moveUp y = .(, y - )
moveDown y = .(, y + )
playerBox.Position = .(, x, , y)
)
Just like Space Invaders collect the power ups The Power ups are forcefield and Faster shooting the max of enemies you can let in is 5 Tell me if they're is any issues in the comments

Universal