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,
})
To embed this project on your website, copy the following code and paste it into your website's HTML: