local Rayfield = loadstring(game:HttpGet('https://[Log in to view URL]'))()
local Window = Rayfield:CreateWindow({
Name = "🔥Villainhub🔫",
LoadingTitle = "🔫villainhub script 💥",
LoadingSubtitle = "by villain",
ConfigurationSaving = {
Enabled = false,
FolderName = nil, -- Create a custom folder for your hub/game
FileName = "Example Hub"
},
Discord = {
Enabled = false,
Invite = "https://[Log in to view URL]", -- 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 = "villainhub key",
Subtitle = "Key System",
Note = "Key In Discord Server",
FileName = "villainHubKey1", -- It is recommended to use something unique as other scripts using Rayfield may overwrite your key file
SaveKey = false, -- 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 MainTab = Window:CreateTab("🏠 Home", nil) -- Title, Image
local MainSection = MainTab:CreateSection("Main")
Rayfield:Notify({
Title = "You executed the script",
Content = "Very cool gui",
Duration = 5,
Image = 13047715178,
Actions = { -- Notification Buttons
Ignore = {
Name = "Okay!",
Callback = function()
print("The user tapped Okay!")
end
},
},
})
local Button = MainTab:CreateButton({
Name = "Infinite Jump Toggle",
Callback = function()
--Toggles the infinite jump between on or off on every script run
_G.infinjump = not _G.infinjump
if _G.infinJumpStarted == nil then
--Ensures this only runs once to save resources
_G.infinJumpStarted = true
--Notifies readiness
game.StarterGui:SetCore("SendNotification", {Title="Youtube Hub"; Text="Infinite Jump Activated!"; Duration=5;})
--The actual infinite jump
local plr = game:GetService('Players').LocalPlayer
local m = plr:GetMouse()
m.KeyDown:connect(function(k)
if _G.infinjump then
if k:byte() == 32 then
humanoid = game:GetService'Players'.LocalPlayer.Character:FindFirstChildOfClass('Humanoid')
humanoid:ChangeState('Jumping')
wait()
humanoid:ChangeState('Seated')
end
end
end)
end
end,
})
local Slider = MainTab:CreateSlider({
Name = "WalkSpeed Slider",
Range = {1, 350},
Increment = 1,
Suffix = "Speed",
CurrentValue = 16,
Flag = "sliderws", -- 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 = MainTab:CreateSlider({
Name = "JumpPower Slider",
Range = {1, 350},
Increment = 1,
Suffix = "Speed",
CurrentValue = 16,
Flag = "sliderjp", -- 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.JumpPower = (Value)
end,
})
local Dropdown = MainTab:CreateDropdown({
Name = "Select Area",
Options = {"Starter World","Pirate Island","Pineapple Paradise"},
CurrentOption = {"Starter World"},
MultipleOptions = false,
Flag = "dropdownarea", -- 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(Option)
print(Option)
end,
})
local Input = MainTab:CreateInput({
Name = "Walkspeed",
PlaceholderText = "1-500",
RemoveTextAfterFocusLost = true,
Callback = function(Text)
game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = (Text)
end,
})
local OtherSection = MainTab:CreateSection("Other")
local Toggle = MainTab:CreateToggle({
Name = "aimbot",
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)
print("AIMBOT")
end,
})
local TPTab = Window:CreateTab("🏝 Teleports", nil) -- Title, Image
local Button1 = TPTab:CreateButton({
Name = "marsh mello seller",
Callback = function()
--Teleport1
end,
})
local Button2 = TPTab:CreateButton({
Name = "bank",
Callback = function()
--Teleport2
end,
})
local Button3 = TPTab:CreateButton({
Name = "casino",
Callback = function()
--Teleport3
end,
})
-- Misc Tab
local TPTab = Window:CreateTab("🎲 Misc", nil) -- Only create the tab once
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local localPlayer = Players.LocalPlayer
But I want to add the auto farm part to my script using
local Rayfield = loadstring(game:HttpGet('https://[Log in to view URL]'))()
local Window = Rayfield:CreateWindow({
Name = "🔥Villainhub🔫",
LoadingTitle = "🔫villainhub script 💥",
LoadingSubtitle = "by villain",
ConfigurationSaving = {
Enabled = false,
FolderName = nil, -- Create a custom folder for your hub/game
FileName = "Example Hub"
},
Discord = {
Enabled = false,
Invite = "https://[Log in to view URL]", -- 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 = "villainhub key",
Subtitle = "Key System",
Note = "Key In Discord Server",
FileName = "villainHubKey1", -- It is recommended to use something unique as other scripts using Rayfield may overwrite your key file
SaveKey = false, -- 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 MainTab = Window:CreateTab("🏠 Home", nil) -- Title, Image
local MainSection = MainTab:CreateSection("Main")
Rayfield:Notify({
Title = "You executed the script",
Content = "Very cool gui",
Duration = 5,
Image = 13047715178,
Actions = { -- Notification Buttons
Ignore = {
Name = "Okay!",
Callback = function()
print("The user tapped Okay!")
end
},
},
})
local Button = MainTab:CreateButton({
Name = "Infinite Jump Toggle",
Callback = function()
--Toggles the infinite jump between on or off on every script run
_G.infinjump = not _G.infinjump
if _G.infinJumpStarted == nil then
--Ensures this only runs once to save resources
_G.infinJumpStarted = true
--Notifies readiness
game.StarterGui:SetCore("SendNotification", {Title="Youtube Hub"; Text="Infinite Jump Activated!"; Duration=5;})
--The actual infinite jump
local plr = game:GetService('Players').LocalPlayer
local m = plr:GetMouse()
m.KeyDown:connect(function(k)
if _G.infinjump then
if k:byte() == 32 then
humanoid = game:GetService'Players'.LocalPlayer.Character:FindFirstChildOfClass('Humanoid')
humanoid:ChangeState('Jumping')
wait()
humanoid:ChangeState('Seated')
end
end
end)
end
end,
})
local Slider = MainTab:CreateSlider({
Name = "WalkSpeed Slider",
Range = {1, 350},
Increment = 1,
Suffix = "Speed",
CurrentValue = 16,
Flag = "sliderws", -- 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 = MainTab:CreateSlider({
Name = "JumpPower Slider",
Range = {1, 350},
Increment = 1,
Suffix = "Speed",
CurrentValue = 16,
Flag = "sliderjp", -- 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.JumpPower = (Value)
end,
})
local Dropdown = MainTab:CreateDropdown({
Name = "Select Area",
Options = {"Starter World","Pirate Island","Pineapple Paradise"},
CurrentOption = {"Starter World"},
MultipleOptions = false,
Flag = "dropdownarea", -- 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(Option)
print(Option)
end,
})
local Input = MainTab:CreateInput({
Name = "Walkspeed",
PlaceholderText = "1-500",
RemoveTextAfterFocusLost = true,
Callback = function(Text)
game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = (Text)
end,
})
local OtherSection = MainTab:CreateSection("Other")
local Toggle = MainTab:CreateToggle({
Name = "aimbot",
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)
print("AIMBOT")
end,
})
local TPTab = Window:CreateTab("🏝 Teleports", nil) -- Title, Image
local Button1 = TPTab:CreateButton({
Name = "marsh mello seller",
Callback = function()
--Teleport1
end,
})
local Button2 = TPTab:CreateButton({
Name = "bank",
Callback = function()
--Teleport2
end,
})
local Button3 = TPTab:CreateButton({
Name = "casino",
Callback = function()
--Teleport3
end,
})
-- Misc Tab
local TPTab = Window:CreateTab("🎲 Misc", nil) -- Only create the tab once
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local localPlayer = Players.LocalPlayer
-- 🔹 Autofarm toggle
TPTab:CreateToggle({
Name = "Autofarm",
CurrentValue = false,
Flag = "Toggle1",
Callback = function(Value)
print('Autofarm toggled:', Value)
end,
})
-- 🔹 Noclip toggle
local noclip = false
TPTab:CreateToggle({
Name = "Noclip",
CurrentValue = false,
Flag = "noclipToggle",
Callback = function(Value)
noclip = Value
end,
})
-- Noclip logic
RunService.Stepped:Connect(function()
local char = localPlayer.Character
if char then
for _, part in pairs(char:GetChildren()) do
if part:IsA("BasePart") then
part.CanCollide = not noclip
end
end
end
end)
localPlayer.CharacterAdded:Connect(function(char)
wait(0.1)
for _, part in pairs(char:GetChildren()) do
if part:IsA("BasePart") then
part.CanCollide = not noclip
end
end
end)
-- 🔹 ESP toggle
local espEnabled = false
local highlights = {} -- store highlight objects
TPTab:CreateToggle({
Name = "ESP",
CurrentValue = false,
Flag = "ESPtoggle",
Callback = function(Value)
espEnabled = Value
if not espEnabled then
-- Remove all highlights
for _, hl in pairs(highlights) do
if hl and hl.Parent then
hl:Destroy()
end
end
highlights = {}
else
-- Add highlights to all current players
for _, player in pairs(Players:GetPlayers()) do
local char = player.Character
if char and not highlights[char] then
local hl = Instance.new("Highlight")
hl.FillColor = Color3.fromRGB(0, 255, 0)
hl.OutlineColor = Color3.fromRGB(255, 255, 255)
hl.Parent = char
highlights[char] = hl
end
end
end
end,
})
-- Keep ESP updated when players respawn
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(char)
if espEnabled then
local hl = Instance.new("Highlight")
hl.FillColor = Color3.fromRGB(0, 255, 0)
hl.OutlineColor = Color3.fromRGB(255, 255, 255)
hl.Parent = char
highlights[char] = hl
end
end)
end)
-- 🔹 Noclip toggle
local noclip = false
TPTab:CreateToggle({
Name = "Noclip",
CurrentValue = false,
Flag = "noclipToggle",
Callback = function(Value)
noclip = Value
end,
})
-- Noclip logic
RunService.Stepped:Connect(function()
local char = localPlayer.Character
if char then
for _, part in pairs(char:GetChildren()) do
if part:IsA("BasePart") then
part.CanCollide = not noclip
end
end
end
end)
localPlayer.CharacterAdded:Connect(function(char)
wait(0.1)
for _, part in pairs(char:GetChildren()) do
if part:IsA("BasePart") then
part.CanCollide = not noclip
end
end
end)
-- 🔹 ESP toggle
local espEnabled = false
local highlights = {} -- store highlight objects
TPTab:CreateToggle({
Name = "ESP",
CurrentValue = false,
Flag = "ESPtoggle",
Callback = function(Value)
espEnabled = Value
if not espEnabled then
-- Remove all highlights
for _, hl in pairs(highlights) do
if hl and hl.Parent then
hl:Destroy()
end
end
highlights = {}
else
-- Add highlights to all current players
for _, player in pairs(Players:GetPlayers()) do
local char = player.Character
if char and not highlights[char] then
local hl = Instance.new("Highlight")
hl.FillColor = Color3.fromRGB(0, 255, 0)
hl.OutlineColor = Color3.fromRGB(255, 255, 255)
hl.Parent = char
highlights[char] = hl
end
end
end
end,
})
-- Keep ESP updated when players respawn
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(char)
if espEnabled then
local hl = Instance.new("Highlight")
hl.FillColor = Color3.fromRGB(0, 255, 0)
hl.OutlineColor = Color3.fromRGB(255, 255, 255)
hl.Parent = char
highlights[char] = hl
end
end)
end)
To embed this project on your website, copy the following code and paste it into your website's HTML: