Key Required
Key Required
Script by geral
Lua Script•168 lines (3998 chars)
-- Build a Haven Script 🏡 (Low Lag Auto Coin Only)
-- GUI Rayfield + Infinite Jump + WalkSpeed + Noclip + Auto Coin/Visitor (10 stud)
-- By GeralGanteng
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
local Window = Rayfield:CreateWindow({
Name = "Build a Haven Script 🏡",
LoadingTitle = "Build a Haven",
LoadingSubtitle = "By GeralGanteng",
ConfigurationSaving = {Enabled = false},
KeySystem = false,
})
local MainTab = Window:CreateTab("Main", nil)
local MainSection = MainTab:CreateSection("Main Menu")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local plr = Players.LocalPlayer
-- ================= VARIABLES =================
local noclipOn = false
local autoCoinOn = false
local interactRange = 10
local walkSpeed = 16
local coinList = {} -- cache coin ProximityPrompt
local lastTick = 0
-- ================= INFINITE JUMP =================
_G.infinjump = false
_G.infinJumpStarted = false
MainTab:CreateToggle({
Name = "Infinite Jump",
CurrentValue = false,
Flag = "infjump",
Callback = function(val)
_G.infinjump = val
if not _G.infinJumpStarted then
_G.infinJumpStarted = true
UIS.JumpRequest:Connect(function()
if _G.infinjump then
local humanoid = plr.Character and plr.Character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
end)
end
end
})
-- ================= WALK SPEED =================
MainTab:CreateSlider({
Name = "WalkSpeed",
Range = {16, 80},
Increment = 1,
Suffix = "Speed",
CurrentValue = walkSpeed,
Flag = "ws",
Callback = function(val)
walkSpeed = val
if plr.Character and plr.Character:FindFirstChild("Humanoid") then
plr.Character.Humanoid.WalkSpeed = walkSpeed
end
end
})
-- ================= NOCLIP =================
MainTab:CreateToggle({
Name = "Noclip",
CurrentValue = false,
Flag = "noclip",
Callback = function(val)
noclipOn = val
end
})
-- ================= AUTO COIN =================
MainTab:CreateToggle({
Name = "Auto Coin/Visitor",
CurrentValue = false,
Flag = "autocoin",
Callback = function(val)
autoCoinOn = val
end
})
-- ================= HELPER FUNCTIONS =================
local function getClosestPart(obj)
if obj:IsA("BasePart") then
return obj
elseif obj:IsA("Model") then
if obj.PrimaryPart then
return obj.PrimaryPart
else
for _,p in pairs(obj:GetChildren()) do
if p:IsA("BasePart") then
return p
end
end
end
end
return nil
end
local function interactWith(v)
if v:IsA("ProximityPrompt") then
pcall(function()
fireproximityprompt(v, 0, true)
end)
end
end
-- ================= CACHE COINS =================
local function updateCoinList()
coinList = {}
for _,v in pairs(workspace:GetDescendants()) do
if v:IsA("ProximityPrompt") and v.Parent then
table.insert(coinList, v)
end
end
end
updateCoinList()
workspace.DescendantAdded:Connect(function(v)
if v:IsA("ProximityPrompt") and v.Parent then
table.insert(coinList, v)
end
end)
workspace.DescendantRemoving:Connect(function(v)
for i,p in pairs(coinList) do
if v == p or v == p.Parent then
table.remove(coinList, i)
end
end
end)
-- ================= RUN SERVICE =================
RunService.Heartbeat:Connect(function(dt)
-- Noclip
if noclipOn and plr.Character then
for _,part in pairs(plr.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = false
end
end
end
-- Auto Coin (low lag)
lastTick = lastTick + dt
if lastTick >= 0.2 then
lastTick = 0
if autoCoinOn and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
local hrp = plr.Character.HumanoidRootPart
for _,v in pairs(coinList) do
local part = getClosestPart(v.Parent)
if part and (hrp.Position - part.Position).Magnitude <= interactRange then
interactWith(v)
end
end
end
end
end)Features & Information
AUTO COIN / VISITOR (LOW LAG)
GUI RAYFIELD (MOBILE FRIENDLY)
INFINITE JUMP
WALK SPEED CUSTOM
NOCLIP MODE
RANGE INTERACT 10 STUD
STABLE & SMOOTH
ANTI FRAME DROP
BUILD A HAVEN SCRIPT 2026
BY GERALGANTENG

Bunz
it doesn't work