
Key Required

-- Infinite Rocket GUI
-- Simple draggable rocket award tool
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
-- Cleanup: remove ALL existing instances before creating a new one
for _, gui in ipairs(LocalPlayer.PlayerGui:GetChildren()) do
if gui.Name == "InfiniteRocket" then
gui:Destroy()
end
end
-- GUI container
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "InfiniteRocket"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
-- Main frame (draggable)
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(0, 140, 0, 85)
Frame.Position = UDim2.new(0.5, -70, 0.5, -42)
Frame.BackgroundColor3 = Color3.fromRGB(28, 28, 28)
Frame.BorderSizePixel = 0
Frame.Active = true
Frame.Draggable = true
Frame.Parent = ScreenGui
Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 5)
-- Border outline
local Stroke = Instance.new("UIStroke", Frame)
Stroke.Color = Color3.fromRGB(75, 75, 75)
Stroke.Thickness = 1
-- Title label
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -28, 0, 26)
Title.Position = UDim2.new(0, 8, 0, 0)
Title.BackgroundTransparency = 1
Title.Text = "Infinite Rocket"
Title.TextColor3 = Color3.fromRGB(210, 210, 210)
Title.TextSize = 12
Title.Font = Enum.Font.Gotham
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = Frame
-- Close button (X)
local CloseBtn = Instance.new("TextButton")
CloseBtn.Size = UDim2.new(0, 18, 0, 18)
CloseBtn.Position = UDim2.new(1, -22, 0, 4)
CloseBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
CloseBtn.BorderSizePixel = 0
CloseBtn.Text = "X"
CloseBtn.TextColor3 = Color3.fromRGB(170, 170, 170)
CloseBtn.TextSize = 10
CloseBtn.Font = Enum.Font.Gotham
CloseBtn.Parent = Frame
Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(0, 3)
-- Thin separator between title and button
local Divider = Instance.new("Frame")
Divider.Size = UDim2.new(1, -14, 0, 1)
Divider.Position = UDim2.new(0, 7, 0, 28)
Divider.BackgroundColor3 = Color3.fromRGB(55, 55, 55)
Divider.BorderSizePixel = 0
Divider.Parent = Frame
-- Award rocket button
local RocketBtn = Instance.new("TextButton")
RocketBtn.Size = UDim2.new(1, -16, 0, 32)
RocketBtn.Position = UDim2.new(0, 8, 0, 36)
RocketBtn.BackgroundColor3 = Color3.fromRGB(195, 195, 195)
RocketBtn.BorderSizePixel = 0
RocketBtn.Text = "Give Rocket"
RocketBtn.TextColor3 = Color3.fromRGB(20, 20, 20)
RocketBtn.TextSize = 12
RocketBtn.Font = Enum.Font.Gotham
RocketBtn.Parent = Frame
Instance.new("UICorner", RocketBtn).CornerRadius = UDim.new(0, 5)
-- Connections table: keeps track of all events for proper cleanup
local connections = {}
-- Hover effect on rocket button
connections[#connections + 1] = RocketBtn.MouseEnter:Connect(function()
RocketBtn.BackgroundColor3 = Color3.fromRGB(240, 240, 240)
end)
connections[#connections + 1] = RocketBtn.MouseLeave:Connect(function()
RocketBtn.BackgroundColor3 = Color3.fromRGB(195, 195, 195)
end)
-- Fire the award event when clicked
connections[#connections + 1] = RocketBtn.MouseButton1Click:Connect(function()
game.ReplicatedStorage.Events.AwardRocket:FireServer()
end)
-- Cleanup function: disconnects all events and destroys the GUI
local function cleanup()
for _, conn in ipairs(connections) do
conn:Disconnect()
end
connections = {}
if ScreenGui and ScreenGui.Parent then
ScreenGui:Destroy()
end
end
-- Destroy the GUI on close (calls full cleanup)
connections[#connections + 1] = CloseBtn.MouseButton1Click:Connect(cleanup)
-- Auto cleanup if the player leaves or script is re-ran
connections[#connections + 1] = Players.LocalPlayer.AncestryChanged:Connect(function()
cleanup()
end)No comments yet for this script.



