if game.PlaceId ~= 80002788030135 then
    return
end

--// SERVICES
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

--// FLAGS / SETTINGS
local ESPEnabled = false
local ESPColor = Color3.fromRGB(255, 255, 255)
local InstantPromptEnabled = false

local FOVEnabled = false
local FOVRadius = 150 -- visual size for circle

----------------------------------------------------
-- ESP: HIGHLIGHT + SIMPLE NAME / INVENTORY LABEL --
----------------------------------------------------

local function getInventoryText(player)
    local items = {}

    local backpack = player:FindFirstChild("Backpack")
    if backpack then
        for _, obj in ipairs(backpack:GetChildren()) do
            if obj:IsA("Tool") then
                table.insert(items, obj.Name)
            end
        end
    end

    local char = player.Character
    if char then
        for _, obj in ipairs(char:GetChildren()) do
            if obj:IsA("Tool") then
                table.insert(items, obj.Name .. " (equipped)")
            end
        end
    end

    if #items == 0 then
        return "No tools"
    else
        return table.concat(items, ", ")
    end
end

local function updateBillboard(player)
    local char = player.Character
    if not char then return end

    local head = char:FindFirstChild("Head") or char:FindFirstChildWhichIsA("BasePart")
    if not head then return end

    local gui = head:FindFirstChild("ESP_Info")
    if not gui then
        gui = Instance.new("BillboardGui")
        gui.Name = "ESP_Info"
        gui.Size = UDim2.new(0, 200, 0, 60)
        gui.StudsOffset = Vector3.new(0, 3, 0)
        gui.AlwaysOnTop = true
        gui.Parent = head

        local label = Instance.new("TextLabel")
        label.Name = "Text"
        label.Size = UDim2.new(1, 0, 1, 0)
        label.BackgroundTransparency = 1
        label.TextColor3 = Color3.new(1, 1, 1)
        label.TextStrokeTransparency = 0
        label.Font = Enum.Font.SourceSansBold
        label.TextScaled = true
        label.TextWrapped = true
        label.Parent = gui
    end

    local label = gui:FindFirstChild("Text")
    if label then
        label.Text = player.Name .. "\n" .. getInventoryText(player)
    end

    gui.Enabled = ESPEnabled
end

local function applyHighlight(character)
    if not character then return end
    if character:FindFirstChild("ESP_Highlight") then return end

    local highlight = Instance.new("Highlight")
    highlight.Name = "ESP_Highlight"
    highlight.FillTransparency = 1
    highlight.OutlineColor = ESPColor
    highlight.Parent = character
end

local function setupPlayer(player)
    if player == LocalPlayer then return end

    if player.Character then
        applyHighlight(player.Character)
        updateBillboard(player)
    end

    player.CharacterAdded:Connect(function(char)
        applyHighlight(char)
        updateBillboard(player)
    end)
end

for _, plr in ipairs(Players:GetPlayers()) do
    setupPlayer(plr)
end

Players.PlayerAdded:Connect(setupPlayer)

--------------------------
-- TELEPORT HELPERS      --
--------------------------

local function getRoot()
    local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
    return char:FindFirstChild("HumanoidRootPart")
end

local function teleportTo(vec3)
    local root = getRoot()
    if root then
        root.CFrame = CFrame.new(vec3)
    end
end

-- Saved positions (in order)
local POS_BUY    = Vector3.new(733.32, 4.49, -49.90) -- buy card
local POS_INSERT = Vector3.new(38.22, 5.21, 72.62)   -- insert/load card
local POS_SPAM   = Vector3.new(242.19, 5.00, 71.78)  -- spam insert card

--------------------------
-- FOV CIRCLE (VISUAL)   --
--------------------------

local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local FOVGui = Instance.new("ScreenGui")
FOVGui.Name = "FOV_Circle_GUI"
FOVGui.ResetOnSpawn = false
FOVGui.Parent = PlayerGui

local FOVFrame = Instance.new("Frame")
FOVFrame.Name = "FOVCircle"
FOVFrame.AnchorPoint = Vector2.new(0.5, 0.5)
FOVFrame.Position = UDim2.fromScale(0.5, 0.5)
FOVFrame.Size = UDim2.fromOffset(FOVRadius * 2, FOVRadius * 2)
FOVFrame.BackgroundTransparency = 1
FOVFrame.BorderSizePixel = 0
FOVFrame.Visible = false
FOVFrame.Parent = FOVGui

local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(1, 0)
UICorner.Parent = FOVFrame

local UIStroke = Instance.new("UIStroke")
UIStroke.Thickness = 2
UIStroke.Color = Color3.fromRGB(255, 255, 255)
UIStroke.Transparency = 0
UIStroke.Parent = FOVFrame

local function updateFOVCircle()
    FOVFrame.Visible = FOVEnabled
    FOVFrame.Size = UDim2.fromOffset(FOVRadius * 2, FOVRadius * 2)
end

------------------------
-- MAIN RENDER LOOP   --
------------------------

RunService.RenderStepped:Connect(function()
    -- ESP visuals
    for _, plr in ipairs(Players:GetPlayers()) do
        if plr ~= LocalPlayer then
            local char = plr.Character
            if char then
                local h = char:FindFirstChild("ESP_Highlight")
                if not h then
                    applyHighlight(char)
                    h = char:FindFirstChild("ESP_Highlight")
                end
                if h then
                    h.Enabled = ESPEnabled
                    h.OutlineColor = ESPColor
                end
                updateBillboard(plr)
            end
        end
    end

    -- Instant Prompt
    if InstantPromptEnabled then
        for _, obj in ipairs(workspace:GetDescendants()) do
            if obj:IsA("ProximityPrompt") then
                obj.HoldDuration = 0
                obj.RequiresLineOfSight = false
            end
        end
    end
end)

-----------------
-- RAYFIELD UI --
-----------------

local Rayfield = loadstring(game:HttpGet("https://[Log in to view URL]"))()

local Window = Rayfield:CreateWindow({
    Name = "chiraq hax",
    Icon = 0,
    LoadingTitle = "Rayfield Interface Suite",
    LoadingSubtitle = "by Sirius",
    ShowText = "Rayfield",
    Theme = "Default",
    ToggleUIKeybind = "K",
    DisableRayfieldPrompts = false,
    DisableBuildWarnings = false,
    ConfigurationSaving = {
        Enabled = true,
        FolderName = nil,
        FileName = "Big Hub"
    },
    Discord = {
        Enabled = false,
        Invite = "noinvitelink",
        RememberJoins = true
    },
    KeySystem = true,
    KeySettings = {
        Title = "Untitled",
        Subtitle = "Key System",
        Note = "No method of obtaining the key is provided",
        FileName = "Key",
        SaveKey = true,
        GrabKeyFromSite = false,
        Key = {"67"}
    }
})

-----------------
-- HOME (MAIN) --
-----------------

local MainTab = Window:CreateTab("Home", nil)
MainTab:CreateSection("main")

MainTab:CreateSlider({
    Name = "Walkspeed",
    Range = {16, 300},
    Increment = 1,
    Suffix = "Walkspeed",
    CurrentValue = 16,
    Flag = "Slider1",
    Callback = function(Value)
        local char = LocalPlayer.Character
        if char then
            local hum = char:FindFirstChildOfClass("Humanoid")
            if hum then
                hum.WalkSpeed = Value
            end
        end
    end,
})

MainTab:CreateSlider({
    Name = "JumpPower",
    Range = {50, 300},
    Increment = 1,
    Suffix = "JumpPower",
    CurrentValue = 50,
    Flag = "Slider2",
    Callback = function(Value)
        local char = LocalPlayer.Character
        if char then
            local hum = char:FindFirstChildOfClass("Humanoid")
            if hum then
                hum.JumpPower = Value
            end
        end
    end,
})

MainTab:CreateToggle({
    Name = "Instant Prompt",
    CurrentValue = false,
    Flag = "InstantPromptToggle",
    Callback = function(Value)
        InstantPromptEnabled = Value
    end,
})

-- 🎯 FOV CIRCLE TOGGLE
MainTab:CreateToggle({
    Name = "FOV Circle",
    CurrentValue = false,
    Flag = "FOVToggle",
    Callback = function(Value)
        FOVEnabled = Value
        updateFOVCircle()
    end,
})

-- 🎯 FOV RADIUS SLIDER
MainTab:CreateSlider({
    Name = "FOV Radius",
    Range = {50, 400},
    Increment = 5,
    Suffix = "size",
    CurrentValue = FOVRadius,
    Flag = "FOVRadiusSlider",
    Callback = function(Value)
        FOVRadius = Value
        updateFOVCircle()
    end,
})

-----------------
-- TELEPORTS TAB --
-----------------

local TeleportTab = Window:CreateTab("Teleports", nil)
TeleportTab:CreateSection("Card Spots")

TeleportTab:CreateButton({
    Name = "Buy Card",
    Callback = function()
        teleportTo(POS_BUY)
    end,
})

TeleportTab:CreateButton({
    Name = "Insert / Load Card",
    Callback = function()
        teleportTo(POS_INSERT)
    end,
})

TeleportTab:CreateButton({
    Name = "Spam Insert Card",
    Callback = function()
        teleportTo(POS_SPAM)
    end,
})

--------------
-- COMBAT   --
--------------

local CombatTab = Window:CreateTab("Combat", nil)
CombatTab:CreateSection("Combat")

CombatTab:CreateToggle({
    Name = "ESP",
    CurrentValue = false,
    Flag = "Toggle1",
    Callback = function(Value)
        ESPEnabled = Value
    end,
})

CombatTab:CreateColorPicker({
    Name = "ESP Color",
    Color = ESPColor,
    Flag = "ESP_Color",
    Callback = function(Color)
        ESPColor = Color
    end,
})

local Toggle = CombatTab:CreateToggle({
   Name = "Toggle Example",
   CurrentValue = false,
   Flag = "Toggle1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
   Callback = function(Value)
        local dwCamera = workspace.CurrentCamera
local dwRunService = game:GetService("RunService")
local dwUIS = game:GetService("UserInputService")
local dwEntities = game:GetService("Players")
local dwLocalPlayer = dwEntities.LocalPlayer
local dwMouse = dwLocalPlayer:GetMouse()

local settings = {
    Aimbot = true,
    Aiming = false,
    Aimbot_AimPart = "Head",
    Aimbot_TeamCheck = true,
    Aimbot_Draw_FOV = true,
    Aimbot_FOV_Radius = 200,
    Aimbot_FOV_Color = Color3.fromRGB(255,255,255)
}

local fovcircle = Drawing.new("Circle")
fovcircle.Visible = settings.Aimbot_Draw_FOV
fovcircle.Radius = settings.Aimbot_FOV_Radius
fovcircle.Color = settings.Aimbot_FOV_Color
fovcircle.Thickness = 1
fovcircle.Filled = false
fovcircle.Transparency = 1

fovcircle.Position = Vector2.new(dwCamera.ViewportSize.X / 2, dwCamera.ViewportSize.Y / 2)

dwUIS.InputBegan:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.MouseButton2 then
        settings.Aiming = true
    end
end)

dwUIS.InputEnded:Connect(function(i)
    if i.UserInputType == Enum.UserInputType.MouseButton2 then
        settings.Aiming = false
    end
end)

dwRunService.RenderStepped:Connect(function()
    
    local dist = math.huge
    local closest_char = nil

    if settings.Aiming then

        for i,v in next, dwEntities:GetChildren() do 

            if v ~= dwLocalPlayer and
            v.Character and
            v.Character:FindFirstChild("HumanoidRootPart") and
            v.Character:FindFirstChild("Humanoid") and
            v.Character:FindFirstChild("Humanoid").Health > 0 then

                if settings.Aimbot_TeamCheck == true and
                v.Team ~= dwLocalPlayer.Team or
                settings.Aimbot_TeamCheck == false then

                    local char = v.Character
                    local char_part_pos, is_onscreen = dwCamera:WorldToViewportPoint(char[settings.Aimbot_AimPart].Position)

                    if is_onscreen then

                        local mag = (Vector2.new(dwMouse.X, dwMouse.Y) - Vector2.new(char_part_pos.X, char_part_pos.Y)).Magnitude

                        if mag < dist and mag < settings.Aimbot_FOV_Radius then

                            dist = mag
                            closest_char = char

                        end
                    end
                end
            end
        end

        if closest_char ~= nil and
        closest_char:FindFirstChild("HumanoidRootPart") and
        closest_char:FindFirstChild("Humanoid") and
        closest_char:FindFirstChild("Humanoid").Health > 0 then

            dwCamera.CFrame = CFrame.new(dwCamera.CFrame.Position, closest_char[settings.Aimbot_AimPart].Position)
        end
    end
end)
   end,
})

Embed on website

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