local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "| SOHAN HUB : PREMIER |", LoadingTitle = "ADJUSTING SPEED...", LoadingSubtitle = "WELCOME, SOHAN", ConfigurationSaving = { Enabled = false }, KeySystem = false }) local MainTab = Window:CreateTab("-> MAIN", 4483362458) local HunterTab = Window:CreateTab("-> ITEM HUNTER", 4483362458) local AreaTab = Window:CreateTab("-> AREAS", 4483362458) local ServerTab = Window:CreateTab("-> SERVER", 4483362458) -- Variables local lp = game.Players.LocalPlayer _G.TargetSpeed = 16 _G.SlowHuntDelay = 1.2 -- Increased delay for safer hunting _G.PromptWait = 0.5 -- Time to wait for prompt to register -- ========================================== -- [ SMART BASE DETECTION ] -- ========================================== local function GetMyPlot() return workspace:FindFirstChild("Plot_testbysohan") or workspace:FindFirstChild("Plot_" .. lp.Name) end -- ========================================== -- [ MAIN TAB: UTILS & TYCOON ] -- ========================================== MainTab:CreateSection("[ CHARACTER ]") MainTab:CreateSlider({ Name = "WalkSpeed", Range = {16, 300}, Increment = 1, Suffix = "Speed", CurrentValue = 16, Callback = function(Value) _G.TargetSpeed = Value end, }) MainTab:CreateButton({ Name = "Bypass VIP Path", Callback = function() local vip = workspace:FindFirstChild("VIP") if vip then for _, obj in pairs(vip:GetDescendants()) do if obj:IsA("TouchInterest") then obj:Destroy() end if obj:IsA("BasePart") then obj.CanCollide = false obj.Transparency = 0.5 end end end end, }) MainTab:CreateButton({ Name = "Remove Tsunamis", Callback = function() if workspace:FindFirstChild("Tsunamis") then workspace.Tsunamis:Destroy() end end, }) MainTab:CreateSection("[ TYCOON AUTOMATION ]") MainTab:CreateButton({ Name = "Teleport to Base", Callback = function() local plot = GetMyPlot() if plot and lp.Character then lp.Character.HumanoidRootPart.CFrame = plot:GetPivot() * CFrame.new(0, 5, 0) end end, }) MainTab:CreateToggle({ Name = "Turbo Auto Upgrade", CurrentValue = false, Callback = function(Value) _G.AutoUpgrade = Value task.spawn(function() while _G.AutoUpgrade do local plot = GetMyPlot() if plot then for f = 1, 5 do local floor = plot:FindFirstChild("Floor"..f) local slots = floor and floor:FindFirstChild("Slots") if slots then for _, slot in pairs(slots:GetChildren()) do local upg = slot:FindFirstChild("UpgradePart") if upg then local cd = upg:FindFirstChildOfClass("ClickDetector") or upg:FindFirstChildWhichIsA("ClickDetector", true) if cd then fireclickdetector(cd) end end end end end end task.wait(0.1) end end) end, }) MainTab:CreateToggle({ Name = "Turbo Auto Collect Cash", CurrentValue = false, Callback = function(Value) _G.AutoCollect = Value task.spawn(function() while _G.AutoCollect do local plot = GetMyPlot() if plot then for f = 1, 5 do local floor = plot:FindFirstChild("Floor"..f) local slots = floor and floor:FindFirstChild("Slots") if slots then for s = 1, 10 do local slot = slots:FindFirstChild("Slot"..s) local touch = slot and slot:FindFirstChild("CollectTouch") if touch then firetouchinterest(lp.Character.HumanoidRootPart, touch, 0) firetouchinterest(lp.Character.HumanoidRootPart, touch, 1) end end end end end task.wait(0.1) end end) end, }) -- ========================================== -- [ ITEM HUNTER TAB - SLOWED DOWN ] -- ========================================== HunterTab:CreateSection("[ BRAINROT TELEPORTS (SAFE SPEED) ]") local function huntMultiArea(rarityKeyword) local hrp = lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") local spawners = workspace:FindFirstChild("ItemSpawners") local plot = GetMyPlot() if not spawners or not hrp then return end local foundAnything = false for _, folder in pairs(spawners:GetChildren()) do if string.find(string.lower(folder.Name), string.lower(rarityKeyword)) then for _, brainrot in pairs(folder:GetChildren()) do if not _G.AutoSec and not _G.AutoMyth and not _G.AutoAnc then break end -- TP to the item hrp.CFrame = brainrot:GetPivot() foundAnything = true -- Wait for server registration task.wait(_G.PromptWait) local prompt = brainrot:FindFirstChildOfClass("ProximityPrompt") or brainrot:FindFirstChildWhichIsA("ProximityPrompt", true) if prompt then fireproximityprompt(prompt) task.wait(0.3) -- Extra time to "pick up" end -- Delay before moving to the next item task.wait(_G.SlowHuntDelay) end end end if foundAnything and plot then hrp.CFrame = plot:GetPivot() * CFrame.new(0,5,0) end end HunterTab:CreateToggle({ Name = "Slow Auto Secret", CurrentValue = false, Callback = function(Value) _G.AutoSec = Value task.spawn(function() while _G.AutoSec do huntMultiArea("Secret") task.wait(2) end end) end, }) HunterTab:CreateToggle({ Name = "Slow Auto Mythical", CurrentValue = false, Callback = function(Value) _G.AutoMyth = Value task.spawn(function() while _G.AutoMyth do huntMultiArea("Mythical") task.wait(2) end end) end, }) HunterTab:CreateToggle({ Name = "Slow Auto Ancient", CurrentValue = false, Callback = function(Value) _G.AutoAnc = Value task.spawn(function() while _G.AutoAnc do huntMultiArea("Ancient") task.wait(2) end end) end, }) -- ========================================== -- [ AREAS TAB ] -- ========================================== AreaTab:CreateSection("[ ZONE TELEPORTS ]") local function GenerateAreaButtons() local zones = workspace:FindFirstChild("AreaZones") if zones then for _, zone in pairs(zones:GetChildren()) do AreaTab:CreateButton({ Name = "Go to: " .. zone.Name, Callback = function() if lp.Character:FindFirstChild("HumanoidRootPart") then lp.Character.HumanoidRootPart.CFrame = zone:GetPivot() * CFrame.new(0, 3, 0) end end, }) end end end GenerateAreaButtons() -- ========================================== -- [ SERVER TAB ] -- ========================================== ServerTab:CreateSection("[ CONNECTIVITY ]") local function ServerAction(sortType) local Http = game:GetService("HttpService") local TPS = game:GetService("TeleportService") local Api = "https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=" .. sortType .. "&limit=100" local _list = Http:JSONDecode(game:HttpGet(Api)) if _list and _list.data then for _, v in pairs(_list.data) do if v.playing < v.maxPlayers and v.id ~= game.JobId then TPS:TeleportToPlaceInstance(game.PlaceId, v.id) break end end end end ServerTab:CreateButton({ Name = "Server Hop", Callback = function() ServerAction("Desc") end }) ServerTab:CreateButton({ Name = "Join Smallest Server", Callback = function() ServerAction("Asc") end }) -- Speed Loop task.spawn(function() while true do pcall(function() lp.Character.Humanoid.WalkSpeed = _G.TargetSpeed end) task.wait() end end)