local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local Mouse = game.Players.LocalPlayer:GetMouse()
local CamlockState = false
local Prediction = 0.1294

function FindNearestEnemy()
    local ClosestDistance, ClosestPlayer = math.huge, nil
    local CenterPosition = Vector2.new(game:GetService("GuiService"):GetScreenResolution().X / 2, game:GetService("GuiService"):GetScreenResolution().Y / 2)

    for _, Player in ipairs(game:GetService("Players"):GetPlayers()) do
        if Player ~= LocalPlayer then
            local Character = Player.Character
            if Character and Character:FindFirstChild("HumanoidRootPart") and Character.Humanoid.Health > 0 then
                local Position, IsVisibleOnViewport = game:GetService("Workspace").CurrentCamera:WorldToViewportPoint(Character.HumanoidRootPart.Position)
                if IsVisibleOnViewport then
                    local Distance = (CenterPosition - Vector2.new(Position.X, Position.Y)).Magnitude
                    if Distance < ClosestDistance then
                        ClosestPlayer = Character.HumanoidRootPart
                        ClosestDistance = Distance
                    end
                end
            end
        end
    end

    return ClosestPlayer
end

local enemy = nil

-- Function to aim the camera at the nearest enemy's HumanoidRootPart
RunService.Heartbeat:Connect(function()
    if CamlockState == true then
        if enemy then
            local camera = workspace.CurrentCamera
            camera.CFrame = CFrame.new(camera.CFrame.p, enemy.Position + enemy.Velocity * Prediction)
        end
    end
end)

local Wowo = Instance.new("ScreenGui")
local Frame = Instance.new("Frame")
local UICorner = Instance.new("UICorner")
local TextButton = Instance.new("TextButton")
local UICorner_2 = Instance.new("UICorner")

-- Properties:
Wowo.Name = "Wowo"
Wowo.Parent = game.CoreGui
Wowo.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

Frame.Parent = Wowo
Frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
Frame.BorderSizePixel = 0
Frame.Position = UDim2.new(0.5, -50, 0.5, -50) 
Frame.Size = UDim2.new(0, 100, 0, 100) 
Frame.Active = true
Frame.Draggable = true

UICorner.Parent = Frame

TextButton.Parent = Frame
TextButton.BackgroundColor3 = Color3.fromRGB(0, 0, 0) 
TextButton.BorderColor3 = Color3.fromRGB(0, 0, 0)
TextButton.BorderSizePixel = 0
TextButton.Position = UDim2.new(0.1, 0, 0.1, 0)
TextButton.Size = UDim2.new(0.8, 0, 0.8, 0) 
TextButton.Font = Enum.Font.SourceSansSemibold
TextButton.Text = "GAY OFF"
TextButton.TextColor3 = Color3.fromRGB(0, 0, 0) 
TextButton.TextScaled = true
TextButton.TextSize = 11.000
TextButton.TextWrapped = true

TextButton.MouseButton1Click:Connect(function()
    CamlockState = not CamlockState
    TextButton.Text = CamlockState and "GAY ON" or "GAY OFF"
    enemy = CamlockState and FindNearestEnemy() or nil
end)

UICorner_2.Parent = TextButton

-- Function to cycle through rainbow colors for the Frame
local rainbowColors = {
    Color3.fromRGB(255, 0, 0),     
    Color3.fromRGB(255, 165, 0),   
    Color3.fromRGB(255, 255, 0),  
    Color3.fromRGB(0, 255, 0),     
    Color3.fromRGB(0, 0, 255),     
    Color3.fromRGB(75, 0, 130),    
    Color3.fromRGB(238, 130, 238)  
}

local rainbowIndex = 1
local rainbowCycleSpeed = 0.09

RunService.RenderStepped:Connect(function(deltaTime)
    local index = math.floor(tick() / rainbowCycleSpeed) % #rainbowColors + 1
    Frame.BackgroundColor3 = rainbowColors[index]
end)

Embed on website

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