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

local Window = Rayfield:CreateWindow({
   Name = "Rogueblade",
   Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default).
   LoadingTitle = "Rogueblade Hub",
   LoadingSubtitle = "by FRA",
   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 = "rez hub"
   },

   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 = false, -- Set this to true to use our key system
   KeySettings = {
      Title = "Untitled",
      Subtitle = "Key System",
      Note = "No method of obtaining the key is provided", -- Use this to tell the user how to get a key
      FileName = "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 = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from
      Key = {"Hello"} -- List of keys that will be accepted by the system, can be RAW file links (pastebin, github etc) or simple strings ("hello","key22")
   }
})

local Tab = Window:CreateTab("Main", nil) -- Title, Image
local Section = Tab:CreateSection("Main")

Rayfield:Notify({
   Title = "Executed",
   Content = "Working",
   Duration = 5,
   Image = nil,
})

local Toggle = Tab:CreateToggle({
    Name = "Auto Bring",
    CurrentValue = false,
    Flag = "Toggle1", -- Unique flag for configuration saving
    Callback = function(Value)
        local player = game.Players.LocalPlayer
        local character = player.Character or player.CharacterAdded:Wait()
        local npcFolder = game.Workspace:FindFirstChild("NPCS")

        -- Stop here if the necessary objects aren't found
        if not character or not npcFolder then return end

        -- Function to update NPCs' positions to match the player's held item
        local function updateNPCPositions()
            if not Value then return end -- Only run if the toggle is enabled

            local tool = player.Backpack:FindFirstChildOfClass("Tool") or character:FindFirstChildOfClass("Tool")
            if tool and tool:FindFirstChild("Handle") then
                local toolPosition = tool.Handle.Position
                local lookDirection = character.HumanoidRootPart.CFrame.LookVector -- Direction the player is facing

                for _, npc in ipairs(npcFolder:GetChildren()) do
                    -- Check if the NPC is a Model with a Humanoid and a PrimaryPart
                    if npc:IsA("Model") and npc:FindFirstChild("Humanoid") and npc.PrimaryPart then
                        -- Calculate spawn position based on the direction the player is facing
                        local spawnPosition = toolPosition + lookDirection * 5 + Vector3.new(0, 0, 4)
                        npc:SetPrimaryPartCFrame(CFrame.new(spawnPosition))
                    end
                end
            end
        end

        -- Connect or disconnect the behavior based on the toggle's state
        if Value then
            -- Enable NPC auto-bring by connecting to RenderStepped
            connection = game:GetService("RunService").RenderStepped:Connect(updateNPCPositions)
        else
            -- Disable NPC auto-bring by disconnecting from RenderStepped
            if connection then
                connection:Disconnect()
                connection = nil
            end
        end
    end,
})

local Toggle = Tab:CreateToggle({
    Name = "Hitbox",
    CurrentValue = false,
    Flag = "Toggle4", -- Unique flag for configuration saving
    Callback = function(Value)
        local player = game.Players.LocalPlayer
        local npcFolder = game.Workspace:FindFirstChild("NPCS")
        local connection

        -- Stop here if the necessary objects aren't found
        if not npcFolder then return end

        -- Function to expand the child parts of NPC hitboxes (client-side only)
        local function expandNPCChildHitboxes()
            if not Value then return end -- Only run if the toggle is enabled

            -- Expand the child parts of each NPC
            for _, npc in ipairs(npcFolder:GetChildren()) do
                if npc:IsA("Model") and npc:FindFirstChild("Humanoid") and npc.PrimaryPart then
                    for _, part in ipairs(npc:GetChildren()) do
                        -- Check if the child is a BasePart
                        if part:IsA("BasePart") then
                            -- Store the original size and transparency (only once)
                            if not part:GetAttribute("OriginalSize") then
                                part:SetAttribute("OriginalSize", part.Size)
                            end
                            if not part:GetAttribute("OriginalTransparency") then
                                part:SetAttribute("OriginalTransparency", part.Transparency)
                            end

                            -- Set the size to (20, 20, 20)
                            part.Size = Vector3.new(20, 20, 20)
                            -- Set transparency to 0.5
                            part.Transparency = 0.5
                            -- Ensure the part remains collidable
                            part.CanCollide = true
                        end
                    end
                end
            end
        end

        -- Function to reset the child parts of NPC hitboxes to their original sizes and transparency
        local function resetNPCChildHitboxes()
            -- Reset the child parts of each NPC
            for _, npc in ipairs(npcFolder:GetChildren()) do
                if npc:IsA("Model") and npc:FindFirstChild("Humanoid") and npc.PrimaryPart then
                    for _, part in ipairs(npc:GetChildren()) do
                        -- Check if the child is a BasePart
                        if part:IsA("BasePart") then
                            -- Reset size and transparency using stored attributes
                            local originalSize = part:GetAttribute("OriginalSize")
                            local originalTransparency = part:GetAttribute("OriginalTransparency")

                            if originalSize then
                                part.Size = originalSize
                            end
                            if originalTransparency then
                                part.Transparency = originalTransparency
                            end
                        end
                    end
                end
            end
        end

        -- Connect or disconnect the behavior based on the toggle's state
        if Value then
            -- Enable the NPC child hitbox expander on the client
            connection = game:GetService("RunService").RenderStepped:Connect(expandNPCChildHitboxes)
        else
            -- Disable the NPC child hitbox expander
            if connection then
                connection:Disconnect()
                connection = nil
            end

            -- Reset NPC child hitboxes to original sizes and transparency
            resetNPCChildHitboxes()
        end
    end,
})

local Toggle = Tab:CreateToggle({
   Name = "Noclip",
   CurrentValue = false,
   Flag = "Toggle5", -- A unique identifier for configuration saving
   Callback = function(Value)
       local player = game.Players.LocalPlayer
       local character = player.Character or player.CharacterAdded:Wait()
       local runService = game:GetService("RunService")
       local connection

       -- If the Value is true, enable noclip
       if Value then
           -- Set up the connection
           connection = runService.Stepped:Connect(function()
               if character then
                   -- Make the player's parts non-collidable
                   for _, part in ipairs(character:GetDescendants()) do
                       if part:IsA("BasePart") then
                           part.CanCollide = false
                       end
                   end

                   -- Make all objects non-collidable, except for the ground
                   for _, part in ipairs(workspace:GetDescendants()) do
                       if part:IsA("BasePart") then
                           if part.Name:lower() == "baseplate" or part.Anchored then
                               -- Keep ground collidable
                               part.CanCollide = true
                           else
                               -- Noclip other objects
                               part.CanCollide = false
                           end
                       end
                   end
               end
           end)
           print("Noclip enabled")
       else
           -- If the Value is false, disable noclip
           if connection then
               connection:Disconnect()
               connection = nil
           end

           if character then
               -- Reset the player's parts to collidable
               for _, part in ipairs(character:GetDescendants()) do
                   if part:IsA("BasePart") then
                       part.CanCollide = true
                   end
               end
           end

           -- Reset all objects in the workspace to their original collision state
           for _, part in ipairs(workspace:GetDescendants()) do
               if part:IsA("BasePart") then
                   part.CanCollide = true
               end
           end
           print("Noclip disabled")
       end
   end,
})

local Toggle = Tab:CreateToggle({
   Name = "ESP",
   CurrentValue = false,
   Flag = "Toggle2",
   Callback = function(Value)
       local npcFolder = game.Workspace:FindFirstChild("NPCS")
       local rainbowSpeed = 1 -- Speed of the rainbow effect
       local runService = game:GetService("RunService")
       local connection

       if npcFolder then
           -- Function to create a rainbow color
           local function getRainbowColor()
               local t = tick() * rainbowSpeed
               return Color3.fromHSV((t % 1), 1, 1)
           end

           -- Function to highlight NPC parts
           local function highlightNPCs()
               for _, npc in ipairs(npcFolder:GetChildren()) do
                   if npc:IsA("Model") then
                       for _, part in ipairs(npc:GetDescendants()) do
                           if part:IsA("BasePart") then
                               local highlight = part:FindFirstChild("SelectionBox")
                               if not highlight then
                                   highlight = Instance.new("SelectionBox")
                                   highlight.Adornee = part
                                   highlight.Parent = part
                                   highlight.LineThickness = 0.05
                               end
                               highlight.Color3 = getRainbowColor()
                           end
                       end
                   end
               end
           end

           -- Toggle on: Connect to RenderStepped
           if Value then
               connection = runService.RenderStepped:Connect(function()
                   highlightNPCs()
               end)
           else
               -- Toggle off: Disconnect and clean up
               if connection then
                   connection:Disconnect()
                   connection = nil
               end
               -- Remove all SelectionBoxes from NPC parts
               for _, npc in ipairs(npcFolder:GetChildren()) do
                   if npc:IsA("Model") then
                       for _, part in ipairs(npc:GetDescendants()) do
                           if part:IsA("BasePart") then
                               local highlight = part:FindFirstChild("SelectionBox")
                               if highlight then
                                   highlight:Destroy()
                               end
                           end
                       end
                   end
               end
           end
       end
   end,
})

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

local Button = MiscTab:CreateButton({
   Name = "Spawn Baseplate",
   Callback = function()
   -- Function to create a baseplate (Client-Side)
local function createBaseplate()
    -- Check if the baseplate already exists
    local existingBaseplate = workspace:FindFirstChild("SkyBaseplate")
    if existingBaseplate then
        return -- Exit if the baseplate already exists
    end

    -- Create the baseplate
    local baseplate = Instance.new("Part")
    baseplate.Size = Vector3.new(40, 10, 40) -- Size of the baseplate
    baseplate.Anchored = true -- Anchor the baseplate so it doesn't move
    baseplate.Position = Vector3.new(0, 600, 0) -- Position of the baseplate (600 studs in the sky)
    baseplate.BrickColor = BrickColor.new("Bright green") -- Set color (optional)
    baseplate.Name = "SkyBaseplate" -- Name it for easy identification
    baseplate.Parent = workspace
end

-- Call the function to create the baseplate
createBaseplate()
   end,
})

local Button = MiscTab:CreateButton({
   Name = "Teleport Baseplate" ,
   Callback = function()
       -- Function to teleport the player above the baseplate
local function teleportPlayerToBaseplate()
    local player = game.Players.LocalPlayer
    local character = player.Character or player.CharacterAdded:Wait()
    local baseplate = workspace:FindFirstChild("SkyBaseplate")

    -- Check if the baseplate exists
    if baseplate and character and character:FindFirstChild("HumanoidRootPart") then
        -- Teleport the player above the baseplate
        character.HumanoidRootPart.CFrame = CFrame.new(baseplate.Position + Vector3.new(0, baseplate.Size.Y / 2 + 5, 0))
    end
end

-- Call the function to teleport the player
teleportPlayerToBaseplate()
   end,
})

Embed on website

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