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

local Window = Rayfield:CreateWindow({
   Name = "Ryzen Hub | South Bronx The Trenches ❗",
   Icon = nil, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default).
   LoadingTitle = "Ryzen XI",
   LoadingSubtitle = "v.1.1",
   Theme = "Default", -- Check https://[Log in to view URL]

   DisableRayfieldPrompts = false,
   DisableBuildWarnings = false, -- Prevents Rayfield from warning when the script has a version mismatch with the interface

   ConfigurationSaving = {
      Enabled = false,
      FolderName = nil, -- Create a custom folder for your hub/game
      FileName = "RXI"
   },

   Discord = {
      Enabled = false, -- Prompt the user to join your Discord server if their executor supports it
      Invite = "noinvitelink", -- The Discord invite code, do not include discord.gg/. E.g. discord.gg/ ABCD would be ABCD
      RememberJoins = true -- Set this to false to make them join the discord every time they load it up
   },

   KeySystem = true, -- Set this to true to use our key system
   KeySettings = {
      Title = "Ryzen HUB | Key",
      Subtitle = "Access",
      Note = "beta", -- Use this to tell the user how to get a key
      FileName = "Ryzen Key", -- It is recommended to use something unique as other scripts using Rayfield may overwrite your key file
      SaveKey = true, -- The user's key will be saved, but if you change the key, they will be unable to use your script
      GrabKeyFromSite = true, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from
      Key = {"https://[Log in to view URL]"} -- List of keys that will be accepted by the system, can be RAW file links (pastebin, github etc) or simple strings ("hello","key22")
   }
})

local VisualTab = Window:CreateTab("Visuals",nil) -- Title, Image
local Section = VisualTab:CreateSection("ESP")

Rayfield:Notify({
   Title = "Ryzen UI",
   Content = "Welcome to Ryzen Hub",
   Duration = 3.5,
   Image = nil,
})

local Button = VisualTab:CreateButton({
   Name = "ESP Box",
   Callback = function()
 loadstring(game:HttpGet('https://[Log in to view URL]'))()
   end,
})

local Button = VisualTab:CreateButton({
   Name = "ESP Skeleton",
   Callback = function()
 loadstring(game:HttpGet('https://[Log in to view URL]'))()
   end,
})

local AimTab = Window:CreateTab("Aimbot", nil) -- Title, Image
local Section = AimTab:CreateSection("Aimlock")

local Toggle = AimTab:CreateToggle({
   Name = "Universal Aimbot",
   CurrentValue = false,
   Flag = "UniToggle", -- 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)
 loadstring(game:HttpGet('https://[Log in to view URL]'))()
   end,

    -- Textbox to input aim lock key
local KeyInput = AimTab:CreateInput({
    Name = "AimLock Key",
    PlaceholderText = "Enter Key (Any Key)",
    RemoveTextAfterFocusLost = false,
    Callback = function(inputKey)
        AimLockKey = inputKey:lower()
        Rayfield:Notify({
            Title = "Key Updated",
            Content = "Aimlock key updated to: " .. AimLockKey,
            Duration = 3
        })
    end
})

-- Textbox to input prediction factor
local PredictionInput = AimTab:CreateInput({
    Name = "AimLock Prediction",
    PlaceholderText = "Enter Prediction (0.1 - 1)",
    RemoveTextAfterFocusLost = false,
    Callback = function(inputPrediction)
        local newPrediction = tonumber(inputPrediction)
        if newPrediction then
            PredictionFactor = newPrediction
            Rayfield:Notify({
                Title = "Prediction Updated",
                Content = "Prediction factor set to: " .. tostring(PredictionFactor),
                Duration = 3
            })
        else
            Rayfield:Notify({
                Title = "Invalid Input",
                Content = "Please enter a valid number for prediction.",
                Duration = 3
            })
        end
    end
})

-- Aim Lock Button with user-defined key and prediction factor
local Button = AimTab:CreateButton({
    Name = "Activate AimLock",
    Callback = function()
        local Players = game:GetService("Players")
        local RunService = game:GetService("RunService")
        local LocalPlayer = Players.LocalPlayer
        local CamlockState = false
        local enemy = nil

        -- Function to find nearest enemy and lock onto their head
        local 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(Players:GetPlayers()) do
                if Player ~= LocalPlayer then
                    local Character = Player.Character
                    if Character and Character:FindFirstChild("Head") and Character.Humanoid.Health > 0 then
                        local Position, OnScreen = workspace.CurrentCamera:WorldToViewportPoint(Character.Head.Position)
                        if OnScreen then
                            local Distance = (CenterPosition - Vector2.new(Position.X, Position.Y)).Magnitude
                            if Distance < ClosestDistance then
                                ClosestPlayer = Character.Head -- Target the Head
                                ClosestDistance = Distance
                            end
                        end
                    end
                end
            end
            return ClosestPlayer
        end

        -- Function to apply prediction to the enemy position
        local function GetPredictedPosition(enemyHead)
            if enemyHead and enemyHead.Velocity then
                return enemyHead.Position + (enemyHead.Velocity * PredictionFactor)
            end
            return enemyHead.Position
        end

        -- Camera lock loop
        RunService.Heartbeat:Connect(function()
            if CamlockState and enemy then
                local targetPosition = GetPredictedPosition(enemy)
                workspace.CurrentCamera.CFrame = CFrame.new(workspace.CurrentCamera.CFrame.p, targetPosition)
            end
        end)

        -- Keybind to toggle aim lock with the user-defined key
        LocalPlayer:GetMouse().KeyDown:Connect(function(key)
            if key == AimLockKey then
                CamlockState = not CamlockState
                if CamlockState then
                    enemy = FindNearestEnemy()
                else
                    enemy = nil
                end
            end
        end)
    end
})


local MiscTab = Window:CreateTab("Misc", nil) -- Title, Image
local Section = MiscTab:CreateSection("Trolls")

local Slider = MiscTab:CreateSlider({
   Name = "Walkspeed",
   Range = {0, 22},
   Increment = 1,
   Suffix = "Speed",
   CurrentValue = 14,
   Flag = "SpeedSlid", -- 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)
         game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = (Value)
   end,
})

local Slider = MiscTab:CreateSlider({
    Name = "Field of View",
    Range = {70, 120}, -- Typical FOV range
    Increment = 1,
    Suffix = "FOV",
    CurrentValue = 70, -- Default FOV in Roblox
    Flag = "FOVSlid", -- Unique flag for configuration saving
    Callback = function(Value)
        game.Workspace.CurrentCamera.FieldOfView = Value -- Update the camera's FOV
    end,
})


local Button = MiscTab:CreateButton({
   Name = "Inf Yield",
   Callback = function()
  loadstring(game:HttpGet('https://[Log in to view URL]'))()
   end,
})

local Button = MiscTab:CreateButton({
    Name = "Auto Loot",
    Callback = function()
         for i,v in pairs(game:GetService("Workspace"):GetDescendants()) do
    if v:IsA("ProximityPrompt") then
        v["HoldDuration"] = 0
    end
end
 
 
game:GetService("ProximityPromptService").PromptButtonHoldBegan:Connect(function(v)
    v["HoldDuration"] = 0
end) 
   end,
})

-- Assuming you already have a MiscTab in your Rayfield setup
-- Adding Spoof Features to the existing MiscTab

-- Add Toggles for Spoof Options
MiscTab:CreateToggle({
    Name = "Enable Spoofing",
    CurrentValue = false,
    Flag = "EnableSpoof", -- Save value in config
    Callback = function(value)
        getgenv().isSpoofEnabled = value
        applyTextLabelSpoof()
    end
})

MiscTab:CreateToggle({
    Name = "Enable Friend Spoofing",
    CurrentValue = false,
    Flag = "EnableFriendSpoof", -- Save value in config
    Callback = function(value)
        getgenv().isFriendSpoofEnabled = value
        applyTextLabelSpoof()
    end
})

-- Add Textbox to Set Custom Name
MiscTab:CreateInput({
    Name = "Set Custom Name",
    PlaceholderText = "Enter a name",
    RemoveTextAfterFocusLost = false,
    Callback = function(input)
        getgenv().name = input
        applyTextLabelSpoof()
    end
})

-- Store Original Text and Name Data
getgenv().name = ""
getgenv().isSpoofEnabled = false
getgenv().isCharacterSpoofEnabled = false
getgenv().isFriendSpoofEnabled = false
local originalTexts = {}
local Players = game:GetService("Players")
local Plr = Players.LocalPlayer

-- Function to Update TextLabel with Spoofed Data
local function updateTextLabel(Value, player)
    if getgenv().isSpoofEnabled or (getgenv().isFriendSpoofEnabled and Plr:IsFriendsWith(player.UserId)) then
        if not originalTexts[Value] then
            originalTexts[Value] = Value.Text
        end
        local has = string.find(Value.Text, player.Name)
        if has then
            Value.Text = Value.Text:gsub(player.Name, getgenv().name)
        end
    else
        if originalTexts[Value] then
            Value.Text = originalTexts[Value]
            originalTexts[Value] = nil
        end
    end

    Value:GetPropertyChangedSignal("Text"):Connect(function()
        if getgenv().isSpoofEnabled or (getgenv().isFriendSpoofEnabled and Plr:IsFriendsWith(player.UserId)) then
            Value.Text = Value.Text:gsub(player.Name, getgenv().name)
        else
            if originalTexts[Value] then
                Value.Text = originalTexts[Value]
                originalTexts[Value] = nil
            end
        end
    end)
end

-- Apply Spoofing Logic to All TextLabels
local function applyTextLabelSpoof()
    for _, Value in next, game:GetDescendants() do 
        if Value:IsA("TextLabel") then 
            updateTextLabel(Value, Plr)
            for _, friend in ipairs(Players:GetPlayers()) do
                if friend ~= Plr and Plr:IsFriendsWith(friend.UserId) then
                    updateTextLabel(Value, friend)
                end
            end
        end
    end
end

-- Watch for Newly Added TextLabels
game.DescendantAdded:Connect(function(Value)
    if Value:IsA("TextLabel") then 
        updateTextLabel(Value, Plr)
    end
end)


local Button = VisualTab:CreateButton({
   Name = "Show Guns",
   Callback = function()
    loadstring(game:HttpGet("https://[Log in to view URL]"))()
   end,
})

local TPTab = Window:CreateTab("Teleports", nil) -- Title, Image
local Section = TPTab:CreateSection("Autofarms")

local Button = TPTab:CreateButton({
   Name = "Box Autofarm",
    Callback = function()
    loadstring(game:HttpGet(('https://[Log in to view URL]'),true))()
    end,
})

Embed on website

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