local Rayfield = loadstring(game:HttpGet('https://[Log in to view URL]'))()
local Window = Rayfield:CreateWindow({
Name = "{FREE} HACKER Hub👾",
Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default).
LoadingTitle = "{Free} Hacker Hub",
LoadingSubtitle = "by Sirius",
ShowText = "Rayfield", -- for mobile users to unhide rayfield, change if you'd like
Theme = "Default", -- Check https://[Log in to view URL]
ToggleUIKeybind = "K", -- The keybind to toggle the UI visibility (string like "K" or Enum.KeyCode)
DisableRayfieldPrompts = false,
DisableBuildWarnings = false, -- Prevents Rayfield from warning when the script has a version mismatch with the interface
ConfigurationSaving = {
Enabled = true,
FolderName = nil, -- Create a custom folder for your hub/game
FileName = "Big 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 = true, -- 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 MainTab = Window:CreateTab("Main", circle) -- Title, Image
local Section = MainTab:CreateSection("ESP")
local Button = MainTab:CreateButton({
Name = "ESP",
Callback = function()
--Tracer
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
local function createTracer()
local tracer = Drawing.new("Line")
tracer.Thickness = 1
tracer.Transparency = 1
tracer.Color = Color3.fromRGB(255, 255, 255)
tracer.Visible = false
return tracer
end
local tracers = {}
local function updateTracer(player)
if player == LocalPlayer then return end
local character = player.Character
if not character then return end
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then return end
local tracer = tracers[player] or createTracer()
tracers[player] = tracer
local rootPos, onScreen = Camera:WorldToViewportPoint(humanoidRootPart.Position)
if onScreen then
tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y) -- Bottom center of the screen
tracer.To = Vector2.new(rootPos.X, rootPos.Y)
tracer.Visible = true
else
tracer.Visible = false
end
end
local function removeTracer(player)
if tracers[player] then
tracers[player]:Remove()
tracers[player] = nil
end
end
RunService.RenderStepped:Connect(function()
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
updateTracer(player)
end
end
end)
Players.PlayerRemoving:Connect(function(player)
removeTracer(player)
end)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
local function createBox()
local box = Drawing.new("Square")
box.Thickness = 1
box.Transparency = 1
box.Color = Color3.fromRGB(255, 255, 255)
box.Filled = false
box.Visible = false
return box
end
local espBoxes = {}
local function updateBox(player)
if player == LocalPlayer then return end
local character = player.Character
if not character then return end
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then return end
local box = espBoxes[player] or createBox()
espBoxes[player] = box
local rootPos, onScreen = Camera:WorldToViewportPoint(humanoidRootPart.Position)
if onScreen then
local distance = (Camera.CFrame.Position - humanoidRootPart.Position).Magnitude
local boxSize = Vector2.new(2000 / distance, 3000 / distance) -- Adjust size based on distance
local boxPosition = Vector2.new(rootPos.X - boxSize.X / 2, rootPos.Y - boxSize.Y / 2)
box.Size = boxSize
box.Position = boxPosition
box.Visible = true
else
box.Visible = false
end
end
local function removeBox(player)
if espBoxes[player] then
espBoxes[player]:Remove()
espBoxes[player] = nil
end
end
RunService.RenderStepped:Connect(function()
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
updateBox(player)
end
end
end)
Players.PlayerRemoving:Connect(function(player)
removeBox(player)
end)
--Health Esp
local function createESP(plr)
local function applyESP(char)
local head = char:WaitForChild("Head", 5)
if not head then return end
-- Clean old ESP
if head:FindFirstChild("HealthESP") then
head:FindFirstChild("HealthESP"):Destroy()
end
-- Create BillboardGui
local billboard = Instance.new("BillboardGui")
billboard.Name = "HealthESP"
billboard.Adornee = head
billboard.Size = UDim2.new(0, 100, 0, 10)
billboard.StudsOffset = Vector3.new(0, 3, 0)
billboard.AlwaysOnTop = true
billboard.Parent = head
-- Background frame
local bg = Instance.new("Frame")
bg.Size = UDim2.new(1, 0, 1, 0)
bg.BackgroundColor3 = Color3.new(0, 0, 0)
bg.BackgroundTransparency = 0.5
bg.BorderSizePixel = 1
bg.Parent = billboard
-- Health bar
local bar = Instance.new("Frame")
bar.Size = UDim2.new(1, 0, 1, 0)
bar.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
bar.BorderSizePixel = 0
bar.Parent = bg
-- Text label
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.TextColor3 = Color3.new(1, 1, 1)
label.TextStrokeTransparency = 0.5
label.TextScaled = true
label.Font = Enum.Font.GothamBold
label.Text = "HP: 0 / 0"
label.Parent = bg
-- Update loop
task.spawn(function()
while char.Parent and plr.Parent do
local humanoid = char:FindFirstChildOfClass("Humanoid")
if humanoid then
local hp = humanoid.Health
local maxHp = humanoid.MaxHealth
local ratio = math.clamp(hp / maxHp, 0, 1)
bar.Size = UDim2.new(ratio, 0, 1, 0)
-- Gradient color
if ratio > 0.5 then
bar.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
elseif ratio > 0.25 then
bar.BackgroundColor3 = Color3.fromRGB(255, 165, 0)
else
bar.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
end
label.Text = "HP: " .. math.floor(hp) .. " / " .. math.floor(maxHp)
end
task.wait(0.1)
end
end)
end
-- Apply to current character
if plr.Character then
applyESP(plr.Character)
end
-- Listen for respawn
plr.CharacterAdded:Connect(function(char)
task.wait(0.5)
applyESP(char)
end)
end
-- Apply to all players
for _, plr in pairs(game.Players:GetPlayers()) do
if plr ~= game.Players.LocalPlayer then
createESP(plr)
end
end
-- Handle players who join later
game.Players.PlayerAdded:Connect(function(plr)
if plr ~= game.Players.LocalPlayer then
plr.CharacterAdded:Connect(function(char)
task.wait(0.5)
createESP(plr)
end)
end
end)
--Username esp
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
local function createUsernameTag()
local usernameTag = Drawing.new("Text")
usernameTag.Size = 18
usernameTag.Center = true
usernameTag.Outline = true
usernameTag.Color = Color3.fromRGB(255, 255, 255)
usernameTag.OutlineColor = Color3.fromRGB(0, 0, 0)
usernameTag.Visible = false
return usernameTag
end
local usernameTags = {}
local function updateUsernameTag(player)
if player == LocalPlayer then return end
local character = player.Character
if not character then return end
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then return end
local usernameTag = usernameTags[player] or createUsernameTag()
usernameTags[player] = usernameTag
local rootPos, onScreen = Camera:WorldToViewportPoint(humanoidRootPart.Position)
if onScreen then
usernameTag.Text = player.Name
usernameTag.Position = Vector2.new(rootPos.X, rootPos.Y - 25)
usernameTag.Visible = true
else
usernameTag.Visible = false
end
end
local function removeUsernameTag(player)
if usernameTags[player] then
usernameTags[player]:Remove()
usernameTags[player] = nil
end
end
RunService.RenderStepped:Connect(function()
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
updateUsernameTag(player)
end
end
end)
Players.PlayerRemoving:Connect(player)
removeUsernameTag(player)
end,
})
local Section = MainTab:CreateSection("Player Mods")
local Slider = MainTab:CreateSlider({
Name = "sped",
Range = {16, 300},
Increment = 1,
Suffix = "DIDDLES",
CurrentValue = 16,
Flag = "Sliwder132", -- 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",
Range = {50, 300},
Increment = 1,
Suffix = "Noice",
CurrentValue = 50,
Flag = "Slider132", -- 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 Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local noclipEnabled = false
local noclipConnection
local function setCharacterCollision(state)
local char = LocalPlayer.Character
if not char then return end
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = state
end
end
end
MainTab:CreateToggle({
Name = "Noclip",
CurrentValue = false,
Flag = "NoclipToggle",
Callback = function(Value)
noclipEnabled = Value
if Value then
-- turn ON noclip
if noclipConnection then
noclipConnection:Disconnect()
end
noclipConnection = RunService.Heartbeat:Connect(function()
if not noclipEnabled then return end
setCharacterCollision(false)
end)
else
-- turn OFF noclip
if noclipConnection then
noclipConnection:Disconnect()
noclipConnection = nil
end
setCharacterCollision(true)
end
end,
})
local Section = MainTab:CreateSection("player TP")
--// Services
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
--// Make a list of player names (except you)
local function GetPlayerNames()
local list = {}
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LocalPlayer then
table.insert(list, plr.Name)
end
end
return list
end
--// Create the dropdown in your Rayfield Tab
local TeleportDropdown = MainTab:CreateDropdown({
Name = "Teleport to Player",
Options = GetPlayerNames(),
CurrentOption = "",
MultipleOptions = false,
Flag = "TeleportToPlayer",
Callback = function(option)
-- Rayfield can send a string or table, so handle both
local targetName = option
if typeof(option) == "table" then
targetName = option[1]
end
local target = Players:FindFirstChild(targetName)
local char = LocalPlayer.Character
if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") and char and char:FindFirstChild("HumanoidRootPart") then
-- Teleport slightly above the player so you don't get stuck
char.HumanoidRootPart.CFrame = target.Character.HumanoidRootPart.CFrame + Vector3.new(0, 3, 0)
end
end,
})
--// Auto-update the dropdown when players join/leave
local function RefreshDropdown()
TeleportDropdown:Refresh(GetPlayerNames(), true)
end
Players.PlayerAdded:Connect(RefreshDropdown)
Players.PlayerRemoving:Connect(RefreshDropdown)
local Section = MainTab:CreateSection("Crosshairs", crosshair)
--// CROSSHAIR STORAGE
local Crosshair1 = {}
local Crosshair2 = {}
local Crosshair3 = {}
--// DEFAULT COLORS
local Crosshair1Color = Color3.fromRGB(0, 255, 0)
local Crosshair2Color = Color3.fromRGB(255, 0, 0)
local Crosshair3Color = Color3.fromRGB(255, 255, 0)
--// DEFAULT THICKNESS / SIZE
local Crosshair1Thickness = 2
local Crosshair2Thickness = 2
local Crosshair3Thickness = 3 -- this will be the DOT RADIUS
local Camera = workspace.CurrentCamera
local function Remove(tbl)
for _, v in ipairs(tbl) do
if v and v.Remove then
v:Remove()
end
end
table.clear(tbl)
end
--// =============== DRAW FUNCTIONS =================
local function DrawCrosshair1()
Remove(Crosshair1)
local center = Camera.ViewportSize / 2
local hLine = Drawing.new("Line")
hLine.From = Vector2.new(center.X - 10, center.Y)
hLine.To = Vector2.new(center.X + 10, center.Y)
hLine.Thickness = Crosshair1Thickness
hLine.Color = Crosshair1Color
hLine.Visible = true
local vLine = Drawing.new("Line")
vLine.From = Vector2.new(center.X, center.Y - 10)
vLine.To = Vector2.new(center.X, center.Y + 10)
vLine.Thickness = Crosshair1Thickness
vLine.Color = Crosshair1Color
vLine.Visible = true
Crosshair1 = {hLine, vLine}
end
local function DrawCrosshair2()
Remove(Crosshair2)
local center = Camera.ViewportSize / 2
local l1 = Drawing.new("Line")
l1.From = Vector2.new(center.X - 10, center.Y - 10)
l1.To = Vector2.new(center.X + 10, center.Y + 10)
l1.Thickness = Crosshair2Thickness
l1.Color = Crosshair2Color
l1.Visible = true
local l2 = Drawing.new("Line")
l2.From = Vector2.new(center.X + 10, center.Y - 10)
l2.To = Vector2.new(center.X - 10, center.Y + 10)
l2.Thickness = Crosshair2Thickness
l2.Color = Crosshair2Color
l2.Visible = true
Crosshair2 = {l1, l2}
end
local function DrawCrosshair3()
Remove(Crosshair3)
local center = Camera.ViewportSize / 2
local dot = Drawing.new("Circle")
dot.Position = Vector2.new(center.X, center.Y)
dot.Radius = Crosshair3Thickness -- use radius as "thickness"
dot.Filled = true
dot.Color = Crosshair3Color
dot.Visible = true
Crosshair3 = {dot}
end
--// =============== MAIN TAB ELEMENTS =================
--// Crosshair 1 Toggle
MainTab:CreateToggle({
Name = "Crosshair 1 (Plus)",
CurrentValue = false,
Callback = function(on)
if on then
Remove(Crosshair2)
Remove(Crosshair3)
DrawCrosshair1()
else
Remove(Crosshair1)
end
end
})
-- Crosshair 1 Color
MainTab:CreateColorPicker({
Name = "Crosshair 1 Color",
Color = Crosshair1Color,
Callback = function(color)
Crosshair1Color = color
for _, obj in ipairs(Crosshair1) do
obj.Color = color
end
end
})
-- Crosshair 1 Thickness Slider (re-draw on change)
MainTab:CreateSlider({
Name = "Crosshair 1 Thickness",
Range = {1, 10},
Increment = 1,
Suffix = "px",
CurrentValue = Crosshair1Thickness,
Callback = function(value)
Crosshair1Thickness = value
if #Crosshair1 > 0 then
DrawCrosshair1()
end
end
})
--======================================================
-- Crosshair 2 Toggle
MainTab:CreateToggle({
Name = "Crosshair 2 (X)",
CurrentValue = false,
Callback = function(on)
if on then
Remove(Crosshair1)
Remove(Crosshair3)
DrawCrosshair2()
else
Remove(Crosshair2)
end
end
})
-- Crosshair 2 Color
MainTab:CreateColorPicker({
Name = "Crosshair 2 Color",
Color = Crosshair2Color,
Callback = function(color)
Crosshair2Color = color
for _, obj in ipairs(Crosshair2) do
obj.Color = color
end
end
})
-- Crosshair 2 Thickness Slider (re-draw on change)
MainTab:CreateSlider({
Name = "Crosshair 2 Thickness",
Range = {1, 10},
Increment = 1,
Suffix = "px",
CurrentValue = Crosshair2Thickness,
Callback = function(value)
Crosshair2Thickness = value
if #Crosshair2 > 0 then
DrawCrosshair2()
end
end
})
--======================================================
-- Crosshair 3 Toggle
MainTab:CreateToggle({
Name = "Crosshair 3 (Dot)",
CurrentValue = false,
Callback = function(on)
if on then
Remove(Crosshair1)
Remove(Crosshair2)
DrawCrosshair3()
else
Remove(Crosshair3)
end
end
})
-- Crosshair 3 Color
MainTab:CreateColorPicker({
Name = "Crosshair 3 Color",
Color = Crosshair3Color,
Callback = function(color)
Crosshair3Color = color
for _, obj in ipairs(Crosshair3) do
obj.Color = color
end
end
})
-- Crosshair 3 "Thickness" Slider (actually size / radius)
MainTab:CreateSlider({
Name = "Crosshair 3 Size",
Range = {1, 15},
Increment = 1,
Suffix = "px",
CurrentValue = Crosshair3Thickness,
Callback = function(value)
Crosshair3Thickness = value
if #Crosshair3 > 0 then
DrawCrosshair3()
end
end
})
local Section = MainTab:CreateSection("Aimbot")
local Toggle = MainTab:CreateToggle({
Name = "AimBot",
CurrentValue = false,
Flag = "Toggle1fe", -- 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)
-- Original script - github.com/ngaokng/KNG-Script/blob/main/Simple-AImbot.lua
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local StarterGui = game:GetService("StarterGui")
local LocalPlayer = Players.LocalPlayer
local Mouse = LocalPlayer:GetMouse()
local FOV = 120
local AimbotEnabled = false
local TargetPlayer = nil
local circle = Drawing.new("Circle")
circle.Visible = false
circle.Radius = FOV
circle.Color = Color3.fromRGB(0, 255, 0)
circle.Thickness = 2
circle.NumSides = 100
circle.Filled = false
circle.Transparency = 0.8
local function isPlayerValid(player)
local char = player.Character
if char and char:FindFirstChild("Head") and char:FindFirstChild("Humanoid") then
local humanoid = char.Humanoid
if humanoid.Health > 0 and char.Head.Transparency < 1 then
return true
end
end
return false
end
local function getClosestPlayer()
local closestPlayer = nil
local shortestDistance = math.huge
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and isPlayerValid(player) then
local headPos, onScreen = workspace.CurrentCamera:WorldToScreenPoint(player.Character.Head.Position)
if onScreen then
local mousePos = Vector2.new(Mouse.X, Mouse.Y)
local playerPos = Vector2.new(headPos.X, headPos.Y)
local distance = (playerPos - mousePos).Magnitude
if distance < FOV and distance < shortestDistance then
shortestDistance = distance
closestPlayer = player
end
end
end
end
return closestPlayer
end
-- Notification à l'exécution
StarterGui:SetCore("SendNotification", {
Title = "Aimbot | by @elh_rblx",
Text = 'Press "R" for activate/deactivate the aimbot',
Duration = 5
})
RunService.RenderStepped:Connect(function()
circle.Position = Vector2.new(Mouse.X, Mouse.Y)
circle.Visible = AimbotEnabled
if AimbotEnabled then
if not TargetPlayer or not isPlayerValid(TargetPlayer) then
TargetPlayer = getClosestPlayer()
end
if TargetPlayer and TargetPlayer.Character then
local head = TargetPlayer.Character:FindFirstChild("Head")
if head then
local camera = workspace.CurrentCamera
local screenPos, onScreen = camera:WorldToScreenPoint(head.Position)
if onScreen then
local deltaX = screenPos.X - Mouse.X
local deltaY = screenPos.Y - Mouse.Y
mousemoverel(deltaX, deltaY)
else
TargetPlayer = nil
end
else
TargetPlayer = nil
end
end
else
TargetPlayer = nil
circle.Visible = false
end
end)
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.R then
AimbotEnabled = not AimbotEnabled
if not AimbotEnabled then
TargetPlayer = nil
circle.Visible = false
end
end
end)
end,
})
local ChicagoTab = Window:CreateTab("Chicago IL RP", nil) -- Title, Image
local Section = ChicagoTab:CreateSection("Teleports")
local Players = game:GetService("Players")
-- Simple teleport function
local function TeleportTo(positionVector3)
local player = Players.LocalPlayer
if not player then return end
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:FindFirstChild("HumanoidRootPart")
if hrp then
hrp.CFrame = CFrame.new(positionVector3)
end
end
-- 🧨 Illegal Gun Dealer
ChicagoTab:CreateButton({
Name = "Teleport: Illegal Gun Dealer",
Callback = function()
TeleportTo(Vector3.new(-19.17, 4.49, -180.11))
end,
})
-- 🏠 Claim Apartment Sign
ChicagoTab:CreateButton({
Name = "Teleport: Claim Apartment Sign",
Callback = function()
TeleportTo(Vector3.new(73.30, 4.50, 120.51))
end,
})
-- 💻 Computer
ChicagoTab:CreateButton({
Name = "Teleport: Computer",
Callback = function()
TeleportTo(Vector3.new(45.93, 5.21, 102.30))
end,
})
-- 🏧 ATM
ChicagoTab:CreateButton({
Name = "Teleport: ATM",
Callback = function()
TeleportTo(Vector3.new(242.36, 5.00, 72.34))
end,
})
-- 💳 Card Dealer
ChicagoTab:CreateButton({
Name = "Teleport: Card Dealer",
Callback = function()
TeleportTo(Vector3.new(732.00, 4.49, -51.69))
end,
})
local Section = ChicagoTab:CreateSection("Money💵")
local Toggle = ChicagoTab:CreateToggle({
Name = "CARD AUTOFARM💵",
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)
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
-- ===== Helpers =====
local function getCharacter()
return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
end
local function getHRP()
local char = getCharacter()
if not char then return nil end
return char:FindFirstChild("HumanoidRootPart")
end
local function TeleportTo(v3)
local hrp = getHRP()
if hrp then
hrp.CFrame = CFrame.new(v3)
task.wait(0.5)
end
end
local function getPromptPosition(prompt)
local parent = prompt.Parent
if parent:IsA("BasePart") then
return parent.Position
elseif parent:IsA("Attachment") then
return parent.WorldPosition
elseif parent:IsA("Model") and parent.PrimaryPart then
return parent.PrimaryPart.Position
end
end
local function getNearestPrompt(maxDistance)
local hrp = getHRP()
if not hrp then return nil end
local nearest, nearestDist
for _, inst in ipairs(workspace:GetDescendants()) do
if inst:IsA("ProximityPrompt") then
local pos = getPromptPosition(inst)
if pos then
local dist = (pos - hrp.Position).Magnitude
if (not maxDistance or dist <= maxDistance) and (not nearestDist or dist < nearestDist) then
nearest, nearestDist = inst, dist
end
end
end
end
return nearest
end
local function fireNearestPrompt(maxDistance)
local prompt = getNearestPrompt(maxDistance)
if prompt then
fireproximityprompt(prompt)
return true
end
return false
end
-- 🔎 specifically fire a prompt by its ObjectText (like "Take Loaded Card")
local function firePromptByObjectText(targetText, maxDistance)
local hrp = getHRP()
if not hrp then return false end
local closest, closestDist
for _, inst in ipairs(workspace:GetDescendants()) do
if inst:IsA("ProximityPrompt") and inst.ObjectText == targetText then
local pos = getPromptPosition(inst)
if pos then
local dist = (pos - hrp.Position).Magnitude
if (not maxDistance or dist <= maxDistance) and (not closestDist or dist < closestDist) then
closest, closestDist = inst, dist
end
end
end
end
if closest then
fireproximityprompt(closest)
return true
end
return false
end
local function findTool(name)
local char = getCharacter()
local backpack = LocalPlayer:FindFirstChild("Backpack")
if char and char:FindFirstChild(name) then
return char[name], true
end
if backpack and backpack:FindFirstChild(name) then
return backpack[name], false
end
return nil, false
end
local function equipToolByName(name)
local tool, inChar = findTool(name)
local char = getCharacter()
if tool and not inChar and char then
tool.Parent = char
end
return tool
end
local function hasTool(name)
local tool = select(1, findTool(name))
return tool ~= nil
end
-- ===== TOGGLE =====
local CardFarmEnabled = false
ChicagoTab:CreateToggle({
Name = "Card Loader ATM Farm",
CurrentValue = false,
Flag = "CardLoaderFarm",
Callback = function(Value)
CardFarmEnabled = Value
if Value then
task.spawn(function()
while CardFarmEnabled do
-- 1) Card Dealer
TeleportTo(Vector3.new(732.00, 4.49, -51.69))
fireNearestPrompt(20)
-- 2) Claim Apartment
TeleportTo(Vector3.new(73.30, 4.50, 120.51))
fireNearestPrompt(20)
-- 3) Computer: load Blank Card
TeleportTo(Vector3.new(45.93, 5.21, 102.30))
equipToolByName("Blank Card")
task.wait(0.3)
-- start loading (use nearest here)
fireNearestPrompt(20)
task.wait(40)
-- finish loading (again nearest)
fireNearestPrompt(20)
-- ⭐ LOOP: keep firing "Take Loaded Card" until we actually get it
local tries = 0
while CardFarmEnabled and not hasTool("Loaded Card") and tries < 80 do
firePromptByObjectText("Take Loaded Card", 30)
tries += 1
task.wait(0.2)
end
if not CardFarmEnabled then
break
end
-- if we STILL didn't get the card, skip this cycle
if not hasTool("Loaded Card") then
task.wait(1)
continue
end
-- 4) ATM: teleport, equip, and spam nearest prompt until Loaded Card is gone
TeleportTo(Vector3.new(242.36, 5.00, 72.34))
equipToolByName("Loaded Card")
local safetyCount = 0
while CardFarmEnabled and hasTool("Loaded Card") do
if not fireNearestPrompt(20) then
break
end
task.wait(0.2)
safetyCount += 1
if safetyCount > 300 then
break
end
end
if not CardFarmEnabled then
break
end
task.wait(1)
end
end)
end
end,
})
end,
})
local BedWarsTab = Window:CreateTab("BedWars🛏️", nil) -- Title, Image
local Section = BedWarsTab:CreateSection("Scripts")
local Button = BedWarsTab:CreateButton({
Name = "Bedwars Script",
Callback = function()
-- 🌀 HACKER HUB (English Version, No Key System)
local BUTTON_IMAGE_ID = "rbxassetid://107781958606208"
local player = game.Players.LocalPlayer
local ScreenGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
ScreenGui.ResetOnSpawn = false
-- 🔵 Main Menu Frame
local MainFrame = Instance.new("Frame")
MainFrame.Parent = ScreenGui
MainFrame.Size = UDim2.new(0, 500, 0, 350)
MainFrame.Position = UDim2.new(0.5, -250, 0.5, -175)
MainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
MainFrame.Visible = false
Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 15)
-- Header
local HeaderLabel = Instance.new("TextLabel", MainFrame)
HeaderLabel.Size = UDim2.new(1, 0, 0, 40)
HeaderLabel.Position = UDim2.new(0, 10, 0, 10)
HeaderLabel.BackgroundTransparency = 1
HeaderLabel.TextColor3 = Color3.fromRGB(255,255,255)
HeaderLabel.Font = Enum.Font.GothamBold
HeaderLabel.TextSize = 16
HeaderLabel.Text = "HACKER HUB | BEDWARS CORE"
-- Tabs Bar
local TabScroll = Instance.new("ScrollingFrame")
TabScroll.Parent = MainFrame
TabScroll.Size = UDim2.new(1, -20, 0, 40)
TabScroll.Position = UDim2.new(0, 10, 0, 60)
TabScroll.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
TabScroll.ScrollBarThickness = 6
TabScroll.CanvasSize = UDim2.new(0,0,0,0)
TabScroll.ScrollBarImageColor3 = Color3.fromRGB(0,170,255)
TabScroll.BorderSizePixel = 0
Instance.new("UICorner", TabScroll).CornerRadius = UDim.new(0, 10)
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.FillDirection = Enum.FillDirection.Horizontal
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 10)
UIListLayout.Parent = TabScroll
-- Content Frame
local ContentFrame = Instance.new("Frame")
ContentFrame.Parent = MainFrame
ContentFrame.Size = UDim2.new(1, -20, 1, -110)
ContentFrame.Position = UDim2.new(0, 10, 0, 110)
ContentFrame.BackgroundTransparency = 1
local Pages = {}
local CurrentPage = nil
-- 📌 Function to Add Tabs
local function AddTab(name)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0, 120, 1, 0)
btn.Text = name
btn.Font = Enum.Font.GothamBold
btn.TextSize = 18
btn.TextColor3 = Color3.fromRGB(255,255,255)
btn.BackgroundTransparency = 1
btn.Parent = TabScroll
task.wait()
TabScroll.CanvasSize = UDim2.new(0, UIListLayout.AbsoluteContentSize.X + 10, 0, 0)
local page = Instance.new("ScrollingFrame", ContentFrame)
page.Size = UDim2.new(1,0,1,0)
page.CanvasSize = UDim2.new(0,0,0,0)
page.ScrollBarThickness = 6
page.Visible = false
page.BackgroundTransparency = 1
Pages[name] = page
btn.MouseButton1Click:Connect(function()
if CurrentPage then CurrentPage.Visible = false end
page.Visible = true
CurrentPage = page
end)
if not CurrentPage then
page.Visible = true
CurrentPage = page
end
end
-- 📌 Function to Add Buttons
local function AddButton(tabName, text, callback)
local page = Pages[tabName]
if not page then return warn("Tab "..tabName.." not found!") end
local btn = Instance.new("TextButton", page)
btn.Size = UDim2.new(0, 200, 0, 40)
btn.Position = UDim2.new(0, 20, 0, (#page:GetChildren()-1)*50)
btn.Text = text
btn.Font = Enum.Font.GothamBold
btn.TextSize = 18
btn.BackgroundColor3 = Color3.fromRGB(0,170,255)
btn.TextColor3 = Color3.fromRGB(255,255,255)
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 10)
page.CanvasSize = UDim2.new(0,0,0,(#page:GetChildren()-1)*50+60)
btn.MouseButton1Click:Connect(callback)
end
-- 🔵 Always-visible Menu Button
local OpenButton = Instance.new("ImageButton")
OpenButton.Parent = ScreenGui
OpenButton.Size = UDim2.new(0, 60, 0, 60)
OpenButton.Position = UDim2.new(0, 20, 0.5, -30)
OpenButton.BackgroundTransparency = 1
OpenButton.Image = BUTTON_IMAGE_ID
OpenButton.ScaleType = Enum.ScaleType.Fit
OpenButton.Visible = true
Instance.new("UICorner", OpenButton).CornerRadius = UDim.new(1, 0)
local menuOpen = false
OpenButton.MouseButton1Click:Connect(function()
menuOpen = not menuOpen
MainFrame.Visible = menuOpen
end)
-- Player Info Box
local PlayerFrame = Instance.new("Frame", MainFrame)
PlayerFrame.Size = UDim2.new(0,200,0,50)
PlayerFrame.Position = UDim2.new(0,10,1,-60)
PlayerFrame.BackgroundTransparency = 1
local Avatar = Instance.new("ImageLabel", PlayerFrame)
Avatar.Size = UDim2.new(0,40,0,40)
Avatar.Position = UDim2.new(0,0,0.5,-20)
Avatar.BackgroundColor3 = Color3.fromRGB(255,255,255)
Avatar.Image = "rbxthumb://type=AvatarHeadShot&id="..player.UserId.."&w=420&h=420"
Instance.new("UICorner", Avatar).CornerRadius = UDim.new(1,0)
local NameLabel = Instance.new("TextLabel", PlayerFrame)
NameLabel.Size = UDim2.new(1,-50,1,0)
NameLabel.Position = UDim2.new(0,50,0,0)
NameLabel.BackgroundTransparency = 1
NameLabel.Font = Enum.Font.GothamBold
NameLabel.TextSize = 18
NameLabel.TextColor3 = Color3.fromRGB(255,255,255)
NameLabel.TextXAlignment = Enum.TextXAlignment.Left
NameLabel.Text = player.Name
-- 📌 Tabs
AddTab("Player")
AddTab("ESP")
AddTab("Combat")
AddTab("Anti")
AddTab("Game")
-- 📌 Buttons
AddButton("Player", "WalkSpeed", function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
AddButton("Player", "Jump Power", function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
AddButton("ESP", "ESP Players", function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
AddButton("ESP", "ESP Beds", function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
AddButton("Combat", "Kill Aura", function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
AddButton("Combat", "Auto Clicker", function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
AddButton("Anti", "Anti Ban", function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
AddButton("Anti", "Anti Kick", function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
AddButton("Game", "Crash Server v1", function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
AddButton("Game", "Crash Server v2", function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
AddButton("Game", "Kick Myself", function()
loadstring(game:HttpGet("https://[Log in to view URL]"))()
end)
end,
})
-- Bedwars Tab Button for Vape V4
BedWarsTab:CreateButton({
Name = "Load Vape V4",
Callback = function()
loadstring(game:HttpGet(
"https://[Log in to view URL]",
true
))()
end
})
local ATab = Window:CreateTab("TB3", nil) -- Title, Image
local Section = ATab:CreateSection("GUI")
local Button = ATab:CreateButton({
Name = "Open Exotic guns",
Callback = function()
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
-- try PlayerGui first
local pg = LocalPlayer:FindFirstChild("PlayerGui") or LocalPlayer:WaitForChild("PlayerGui")
local gui = pg:FindFirstChild("ThaShop2")
-- if not there, try CoreGui
if not gui then
gui = game:GetService("CoreGui"):FindFirstChild("ThaShop2")
end
-- last resort: search whole game
if not gui then
for _, obj in ipairs(game:GetDescendants()) do
if obj:IsA("ScreenGui") and obj.Name == "ThaShop2" then
gui = obj
break
end
end
end
if gui then
gui.Enabled = true
end
end
})
local Button = ATab:CreateButton({
Name = "Open ThaShop",
Callback = function()
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
-- PlayerGui first
local pg = LocalPlayer:FindFirstChild("PlayerGui") or LocalPlayer:WaitForChild("PlayerGui")
local gui = pg:FindFirstChild("ThaShop")
-- CoreGui fallback
if not gui then
gui = game:GetService("CoreGui"):FindFirstChild("ThaShop")
end
-- Full game search last
if not gui then
for _, obj in ipairs(game:GetDescendants()) do
if obj:IsA("ScreenGui") and obj.Name == "ThaShop" then
gui = obj
break
end
end
end
if gui then
gui.Enabled = true
end
end
})
local Button = ATab:CreateButton({
Name = "INF Money IceFruit",
Callback = function()
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local root = char:WaitForChild("HumanoidRootPart")
------------------------------------
-- TELEPORT FIRST
------------------------------------
root.CFrame = CFrame.new(-69.83, 287.06, -319.33)
------------------------------------
-- FIND SELL PROMPT
------------------------------------
local sellObj = workspace:FindFirstChild("IceFruit Sell")
if not sellObj then
warn("IceFruit Sell not found in workspace!")
return
end
local prompt = sellObj:FindFirstChild("ProximityPrompt")
if not prompt then
warn("ProximityPrompt missing inside IceFruit Sell!")
return
end
------------------------------------
-- SPAM 999 TIMES AFTER TELEPORT
------------------------------------
task.wait(0.01) -- tiny buffer so teleport fully applies
for i = 1, 10000000, 10000 do
pcall(function()
fireproximityprompt(prompt)
end)
task.wait(0.1)
end
end
})
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local targetAmount = 1600000
local Button = ATab:CreateButton({ -- change CTab to your tab if needed
Name = "Auto Sell to 1.6M",
Callback = function()
local stored = LocalPlayer:WaitForChild("stored")
local filthy = stored:WaitForChild("FilthyStack")
local sellObj = workspace:FindFirstChild("IceFruit Sell")
if not sellObj then
warn("IceFruit Sell not found in workspace")
return
end
local prompt = sellObj:FindFirstChild("ProximityPrompt")
if not prompt then
warn("No ProximityPrompt in IceFruit Sell")
return
end
while filthy.Value < targetAmount do
-- make sure character exists
local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local root = char:WaitForChild("HumanoidRootPart")
-- TP first
root.CFrame = CFrame.new(-69.83, 287.06, -319.33)
task.wait(0.2)
-- spam sell, but stop early if we hit target
for i = 1, 999 do
if filthy.Value >= targetAmount then
break
end
pcall(function()
fireproximityprompt(prompt)
end)
task.wait(0.02)
end
task.wait(0.2)
end
print("Done: FilthyStack reached at least 1,600,000. Current:", filthy.Value)
end
})
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local targetAmount = 1600000
local Button = CTab:CreateButton({ -- change CTab if needed
Name = "Auto Sell to 1.6M (Fast)",
Callback = function()
local stored = LocalPlayer:WaitForChild("stored")
local filthy = stored:WaitForChild("FilthyStack")
local sellObj = workspace:FindFirstChild("IceFruit Sell")
if not sellObj then
warn("IceFruit Sell not found in workspace")
return
end
local prompt = sellObj:FindFirstChild("ProximityPrompt")
if not prompt then
warn("No ProximityPrompt in IceFruit Sell")
return
end
while filthy.Value < targetAmount do
-- make sure character exists
local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local root = char:WaitForChild("HumanoidRootPart")
-- TP first
root.CFrame = CFrame.new(-69.83, 287.06, -319.33)
task.wait(0.005) -- shorter, gets to spam faster
-- FAST SPAM: 2000 times, tiny delay
for i = 1, 2000 do
if filthy.Value >= targetAmount then
break
end
pcall(function()
fireproximityprompt(prompt)
end)
task.wait(0.0001) -- faster spam
end
task.wait(0.003) -- small pause so server updates money
end
print("Done: FilthyStack reached at least 1,600,000. Current:", filthy.Value)
end
})
To embed this project on your website, copy the following code and paste it into your website's HTML: