local validKey = "EXAMPLE_KEY" -- Change to your key
local enteredKey = nil

local player = game.Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

local screenGui = Instance.new("ScreenGui")
screenGui.Parent = playerGui

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 300, 0, 290)
mainFrame.Position = UDim2.new(0.5, -150, 0.5, -145)
mainFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
mainFrame.Parent = screenGui

local title = Instance.new("TextLabel")
title.Text = "Key System:"
title.Size = UDim2.new(1, 0, 0, 30)
title.BackgroundTransparency = 1
title.TextScaled = true
title.TextColor3 = Color3.new(1, 1, 1)
title.Parent = mainFrame

local statusLabel = Instance.new("TextLabel")
statusLabel.Text = ""
statusLabel.Size = UDim2.new(1, 0, 0, 30)
statusLabel.Position = UDim2.new(0, 0, 0.15, 0)
statusLabel.BackgroundTransparency = 1
statusLabel.TextScaled = true
statusLabel.TextColor3 = Color3.new(1, 1, 1)
statusLabel.Parent = mainFrame

local inputBox = Instance.new("TextBox")
inputBox.PlaceholderText = "Key goes here"
inputBox.Text = "Key goes here"
inputBox.Size = UDim2.new(0.8, 0, 0, 40)
inputBox.Position = UDim2.new(0.1, 0, 0.3, 0)
inputBox.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
inputBox.TextColor3 = Color3.new(1, 1, 1)
inputBox.Parent = mainFrame

local submitButton = Instance.new("TextButton")
submitButton.Text = "Input Key"
submitButton.Size = UDim2.new(0.8, 0, 0, 40)
submitButton.Position = UDim2.new(0.1, 0, 0.5, 0)
submitButton.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
submitButton.TextColor3 = Color3.new(1, 1, 1)
submitButton.Parent = mainFrame

local getKeyButton = Instance.new("TextButton")
getKeyButton.Text = "Get Key"
getKeyButton.Size = UDim2.new(0.8, 0, 0, 40)
getKeyButton.Position = UDim2.new(0.1, 0, 0.7, 0)
getKeyButton.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
getKeyButton.TextColor3 = Color3.new(1, 1, 1)
getKeyButton.Parent = mainFrame

local destroyButton = Instance.new("TextButton")
destroyButton.Text = "I don't actually want to use this script"
destroyButton.Size = UDim2.new(0.8, 0, 0, 30)
destroyButton.Position = UDim2.new(0.1, 0, 0.85, 0)
destroyButton.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
destroyButton.TextColor3 = Color3.new(1, 1, 1)
destroyButton.Parent = mainFrame

local getKeyFrame = Instance.new("Frame")
getKeyFrame.Size = UDim2.new(0, 250, 0, 150)
getKeyFrame.Position = UDim2.new(0.5, 160, 0.5, -75)
getKeyFrame.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
getKeyFrame.Visible = false
getKeyFrame.Parent = screenGui

local getKeyText = Instance.new("TextLabel")
getKeyText.Text = "How to get key:\nBlah Blah Blah" -- Explain where to get key from
getKeyText.Size = UDim2.new(1, 0, 0.7, 0)
getKeyText.BackgroundTransparency = 1
getKeyText.TextColor3 = Color3.new(1, 1, 1)
getKeyText.TextWrapped = true
getKeyText.Parent = getKeyFrame

local closeButton = Instance.new("TextButton")
closeButton.Text = "Close"
closeButton.Size = UDim2.new(0.8, 0, 0, 30)
closeButton.Position = UDim2.new(0.1, 0, 0.75, 0)
closeButton.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
closeButton.TextColor3 = Color3.new(1, 1, 1)
closeButton.Parent = getKeyFrame

submitButton.MouseButton1Click:Connect(function()
    enteredKey = inputBox.Text
    if enteredKey == validKey then
        statusLabel.Text = "Key Accepted!"
        wait(1)
        screenGui:Destroy()
        script:Destroy()
        -- Actual exploit goes here
    else
        statusLabel.Text = "Invalid Key!"
        wait(1.5)
        statusLabel.Text = ""
    end
end)

getKeyButton.MouseButton1Click:Connect(function()
    getKeyFrame.Visible = true
end)

closeButton.MouseButton1Click:Connect(function()
    getKeyFrame.Visible = false
end)

destroyButton.MouseButton1Click:Connect(function()
    screenGui:Destroy()
    script:Destroy()
end)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: