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 = "FFRA Script",
   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 = "Malas Bd",
   Duration = 5,
   Image = nil,
})

local Toggle = Tab:CreateToggle({
   Name = "Auto Bring",
   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)
   -- Function to make NPCs always follow the player's held item
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait() -- Wait for the player's character to load

if character then
    local npcFolder = game.Workspace:FindFirstChild("NPCS")

    if npcFolder then
        -- Function to update NPCs' positions to match the player's held item
        local function updateNPCPositions()
            local tool = player.Backpack:FindFirstChildOfClass("Tool") or character:FindFirstChildOfClass("Tool")

            -- Ensure the player is holding a tool with a valid Handle
            if tool and tool:FindFirstChild("Handle") then
                local toolPosition = tool.Handle.Position

                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
                        npc:SetPrimaryPartCFrame(CFrame.new(toolPosition))
                    end
                end
            end
        end

        -- Continuously monitor the position of the held tool and update NPCs
        game:GetService("RunService").RenderStepped:Connect(function()
            updateNPCPositions()
        end)
    end
            end
   end,
})

Embed on website

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