-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] --[[ Silver HubV2 | Flee the Facility (Pro) Flow: Flashy Loading Screen -> Welcome Popup -> Main GUI (no key) NOTE: Game-specific object / remote names are best-effort (see NAMES + CONFIG below). ]] local HOVER_SFX = "rbxassetid://6895079853" -- Names the script looks for in the map. Edit if the game changes them. local NAMES = { Computer = "ComputerTable", Pod = "FreezePod", Exit = "ExitDoor", Doors = {"SingleDoor", "DoubleDoor"}, } ---------------------------------------------------------------- -- Services ---------------------------------------------------------------- local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") local SoundService = game:GetService("SoundService") local Debris = game:GetService("Debris") local TeleportService = game:GetService("TeleportService") local VirtualUser = game:GetService("VirtualUser") local ReplicatedStorage = game:GetService("ReplicatedStorage") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera ---------------------------------------------------------------- -- State ---------------------------------------------------------------- local Accent = Color3.fromRGB(110, 200, 255) local accentCallbacks = {} local ToggleKey = Enum.KeyCode.RightShift local NoClipKey = Enum.KeyCode.N local State = { BeastESP = false, SurvivorESP = false, ComputerESP = false, ExitESP = false, PodESP = false, AutoSkill = false, NoFail = false, InstantRescue = false, RescueRange = 18, InteractBoost = false, InteractMult = 2.5, AutoTie = false, HammerReach = false, HammerScale = 1.6, NoCooldown = false, DoorAura = false, Speed = false, SpeedValue = 24, FullBright = false, NoClip = false, InfJump = false, AntiAFK = true, } local refreshers = {} -- toggle UI refresh functions, so hotkeys can sync the switches ---------------------------------------------------------------- -- Helpers ---------------------------------------------------------------- local function create(class, props, children) local inst = Instance.new(class) for k, v in pairs(props or {}) do inst[k] = v end for _, c in ipairs(children or {}) do c.Parent = inst end return inst end local function tween(obj, t, props, style, dir) local tw = TweenService:Create(obj, TweenInfo.new(t, style or Enum.EasingStyle.Quad, dir or Enum.EasingDirection.Out), props) tw:Play() return tw end local function playHover() local s = Instance.new("Sound") s.SoundId = HOVER_SFX s.Volume = 0.6 s.Parent = SoundService s:Play() Debris:AddItem(s, 2) end local function onAccent(fn) table.insert(accentCallbacks, fn) fn(Accent) end local function setAccent(c) Accent = c for _, fn in ipairs(accentCallbacks) do pcall(fn, c) end end local function hoverable(obj, normal, hover) obj.MouseEnter:Connect(function() playHover() if hover then tween(obj, 0.15, hover) end end) obj.MouseLeave:Connect(function() if normal then tween(obj, 0.15, normal) end end) end local function getParent() local ok, ui = pcall(function() return (gethui and gethui()) or game:GetService("CoreGui") end) if ok and ui then return ui end return LocalPlayer:WaitForChild("PlayerGui") end local Gui = create("ScreenGui", { Name = "SilverHubV2_FTF", ResetOnSpawn = false, IgnoreGuiInset = true, ZIndexBehavior = Enum.ZIndexBehavior.Sibling, DisplayOrder = 999, }) Gui.Parent = getParent() local function gradient(parent, c0, c1, rot) return create("UIGradient", {Color = ColorSequence.new(c0, c1), Rotation = rot or 90, Parent = parent}) end local function myRoot() local c = LocalPlayer.Character return c and c:FindFirstChild("HumanoidRootPart") end local function humanoid() return LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") end local function remote() return ReplicatedStorage:FindFirstChild("RemoteEvent") end local function statsOf(plr) return plr:FindFirstChild("TempPlayerStatsModule") end local function isBeast(plr) local c = plr.Character if c and c:FindFirstChild("Hammer") then return true end local s = statsOf(plr) local v = s and s:FindFirstChild("IsBeast") return v and v.Value or false end local function iAmBeast() return isBeast(LocalPlayer) end local function partOf(model) if model:IsA("BasePart") then return model end return model.PrimaryPart or model:FindFirstChildWhichIsA("BasePart", true) end ---------------------------------------------------------------- -- Map scanning ---------------------------------------------------------------- local Map = {Computers = {}, Pods = {}, Exits = {}, Doors = {}} local function scanMap() local c, p, e, d = {}, {}, {}, {} for _, o in ipairs(workspace:GetDescendants()) do if o:IsA("Model") then local n = o.Name if n == NAMES.Computer then table.insert(c, o) elseif n == NAMES.Pod then table.insert(p, o) elseif n == NAMES.Exit then table.insert(e, o) elseif table.find(NAMES.Doors, n) then table.insert(d, o) end end end Map.Computers, Map.Pods, Map.Exits, Map.Doors = c, p, e, d end task.spawn(function() while true do pcall(scanMap) task.wait(2) end end) -- Computer state: "done" / "progress" / "idle" local function computerState(pc) local screen = pc:FindFirstChild("Screen") if screen and screen:IsA("BasePart") then local col = screen.Color if col.G > col.R and col.G > col.B then return "done" end end local pp = partOf(pc) if pp then for _, plr in ipairs(Players:GetPlayers()) do local r = plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") local s = statsOf(plr) local ap = s and s:FindFirstChild("ActionProgress") if r and ap and ap.Value > 0 and (r.Position - pp.Position).Magnitude < 10 then return "progress" end end end return "idle" end local function allComputersDone() if #Map.Computers == 0 then return false end for _, pc in ipairs(Map.Computers) do if computerState(pc) ~= "done" then return false end end return true end ---------------------------------------------------------------- -- ESP ---------------------------------------------------------------- local function setHighlight(target, key, color, on) local existing = target:FindFirstChild(key) if on then if not existing then existing = Instance.new("Highlight") existing.Name = key existing.FillTransparency = 0.55 existing.OutlineTransparency = 0 existing.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop existing.Parent = target end existing.FillColor = color existing.OutlineColor = color elseif existing then existing:Destroy() end end local function setTag(adornee, key, text, color, on) local tag = adornee:FindFirstChild(key) if on then if not tag then tag = create("BillboardGui", { Name = key, Size = UDim2.fromOffset(170, 34), StudsOffset = Vector3.new(0, 3, 0), AlwaysOnTop = true, Parent = adornee, }) create("TextLabel", { Name = "L", Size = UDim2.fromScale(1, 1), BackgroundTransparency = 1, Font = Enum.Font.GothamBold, TextSize = 13, TextStrokeTransparency = 0.2, Parent = tag, }) end tag.L.Text = text tag.L.TextColor3 = color elseif tag then tag:Destroy() end end local function beastStatus(plr, dist) local s = statsOf(plr) local carried = s and s:FindFirstChild("CarriedTorso") if carried and carried.Value ~= nil then return "Carrying Player" end local hum = plr.Character and plr.Character:FindFirstChildOfClass("Humanoid") local rag = s and s:FindFirstChild("Ragdoll") if (rag and rag.Value) or (hum and hum.WalkSpeed < 2) then return "Stunned" end if dist < 45 then return "Chasing" end return "Roaming" end task.spawn(function() while task.wait(0.25) do pcall(function() local root = myRoot() for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character then local r = plr.Character:FindFirstChild("HumanoidRootPart") local dist = (root and r) and math.floor((r.Position - root.Position).Magnitude) or 0 if r then if isBeast(plr) then setHighlight(plr.Character, "SilverSurv", Color3.new(), false) setTag(r, "SilverSurvTag", "", Color3.new(), false) setHighlight(plr.Character, "SilverBeast", Color3.fromRGB(255, 40, 40), State.BeastESP) setTag(r, "SilverBeastTag", ("BEAST [%dm] %s"):format(dist, beastStatus(plr, dist)), Color3.fromRGB(255, 90, 90), State.BeastESP) else setHighlight(plr.Character, "SilverBeast", Color3.new(), false) setTag(r, "SilverBeastTag", "", Color3.new(), false) setHighlight(plr.Character, "SilverSurv", Color3.fromRGB(70, 220, 255), State.SurvivorESP) setTag(r, "SilverSurvTag", ("%s [%dm]"):format(plr.DisplayName, dist), Color3.fromRGB(120, 230, 255), State.SurvivorESP) end end end end for _, pc in ipairs(Map.Computers) do if pc.Parent then local st = computerState(pc) local col = st == "done" and Color3.fromRGB(70, 255, 110) or st == "progress" and Color3.fromRGB(255, 220, 60) or Color3.fromRGB(255, 70, 70) setHighlight(pc, "SilverPC", col, State.ComputerESP) local pp = partOf(pc) if pp then setTag(pp, "SilverPCTag", st == "done" and "Completed" or st == "progress" and "In Progress" or "Not Started", col, State.ComputerESP) end end end local powered = allComputersDone() for _, ex in ipairs(Map.Exits) do if ex.Parent then local col = powered and Color3.fromRGB(80, 255, 140) or Color3.fromRGB(120, 120, 130) setHighlight(ex, "SilverExit", col, State.ExitESP) local pp = partOf(ex) if pp then setTag(pp, "SilverExitTag", powered and "EXIT (POWERED)" or "Exit (locked)", col, State.ExitESP) end end end for _, pod in ipairs(Map.Pods) do if pod.Parent then setHighlight(pod, "SilverPod", Color3.fromRGB(190, 120, 255), State.PodESP) local pp = partOf(pod) if pp then setTag(pp, "SilverPodTag", "Freeze Pod", Color3.fromRGB(200, 150, 255), State.PodESP) end end end end) end end) ---------------------------------------------------------------- -- Survivor automation ---------------------------------------------------------------- -- Auto skill check: only fires while you are near an unfinished computer task.spawn(function() while task.wait(0.12) do if State.AutoSkill then local root, rem = myRoot(), remote() if root and rem then for _, pc in ipairs(Map.Computers) do local pp = partOf(pc) if pp and (pp.Position - root.Position).Magnitude < 12 then pcall(function() rem:FireServer("SetPlayerMinigameResult", true) end) break end end end end end end) -- No-fail: rewrite any "failed" skill check result into a success before it is sent pcall(function() if hookmetamethod and getnamecallmethod then local old old = hookmetamethod(game, "__namecall", function(self, ...) if State.NoFail and getnamecallmethod() == "FireServer" and typeof(self) == "Instance" and self.Name == "RemoteEvent" then local args = {...} if args[1] == "SetPlayerMinigameResult" and args[2] == false then args[2] = true return old(self, unpack(args)) end end return old(self, ...) end) end end) -- Instant rescue: free a captured teammate when you are within range of their pod local function podTrigger(pod) return pod:FindFirstChild("PodTrigger", true) or partOf(pod) end task.spawn(function() while task.wait(0.3) do if State.InstantRescue and not iAmBeast() then pcall(function() local root, rem = myRoot(), remote() if not root then return end for _, pod in ipairs(Map.Pods) do local trig = podTrigger(pod) if trig and (trig.Position - root.Position).Magnitude < State.RescueRange then for _, plr in ipairs(Players:GetPlayers()) do local r = plr ~= LocalPlayer and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") local s = plr ~= LocalPlayer and statsOf(plr) local cap = s and s:FindFirstChild("Captured") if r and cap and cap.Value and (r.Position - trig.Position).Magnitude < 10 then if firetouchinterest then firetouchinterest(root, trig, 0) firetouchinterest(root, trig, 1) end if rem then rem:FireServer("Input", "Trigger", true) rem:FireServer("Input", "Action", true) end end end end end end) end end end) -- Interact distance boost (affects ProximityPrompts only) local promptOrig = setmetatable({}, {__mode = "k"}) task.spawn(function() while task.wait(1) do for _, o in ipairs(workspace:GetDescendants()) do if o:IsA("ProximityPrompt") then if promptOrig[o] == nil then promptOrig[o] = {o.MaxActivationDistance, o.RequiresLineOfSight} end if State.InteractBoost then o.MaxActivationDistance = promptOrig[o][1] * State.InteractMult o.RequiresLineOfSight = false else o.MaxActivationDistance = promptOrig[o][1] o.RequiresLineOfSight = promptOrig[o][2] end end end end end) ---------------------------------------------------------------- -- Beast enhancements ---------------------------------------------------------------- -- Auto tie to pod local lastTie = 0 task.spawn(function() while task.wait(0.4) do if State.AutoTie and iAmBeast() and tick() - lastTie > 1.5 then pcall(function() local root = myRoot() local char = LocalPlayer.Character local s = statsOf(LocalPlayer) local carried = s and s:FindFirstChild("CarriedTorso") local hammer = char and char:FindFirstChild("Hammer") if not root then return end -- 1) tie any downed survivor in range if hammer then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer and plr.Character then local st = statsOf(plr) local rag = st and st:FindFirstChild("Ragdoll") local torso = plr.Character:FindFirstChild("Torso") or plr.Character:FindFirstChild("UpperTorso") if rag and rag.Value and torso and (torso.Position - root.Position).Magnitude < 15 then hammer.HammerEvent:FireServer("HammerTieUp", torso, torso.Position) end end end end -- 2) if carrying someone, go to the nearest pod and trigger it if carried and carried.Value ~= nil then local best, bestD for _, pod in ipairs(Map.Pods) do local t = podTrigger(pod) if t then local d = (t.Position - root.Position).Magnitude if not bestD or d < bestD then best, bestD = t, d end end end if best then lastTie = tick() root.CFrame = best.CFrame * CFrame.new(0, 0, 4) task.wait(0.15) local rem = remote() if firetouchinterest then firetouchinterest(root, best, 0) firetouchinterest(root, best, 1) end if rem then rem:FireServer("Input", "Trigger", true) rem:FireServer("Input", "Action", true) end end end end) end end end) -- Extended hammer reach (scales the hammer's parts client-side) local hammerOrig = setmetatable({}, {__mode = "k"}) RunService.Heartbeat:Connect(function() local char = LocalPlayer.Character local hammer = char and char:FindFirstChild("Hammer") if hammer then for _, p in ipairs(hammer:GetDescendants()) do if p:IsA("BasePart") then if not hammerOrig[p] then hammerOrig[p] = p.Size end local target = State.HammerReach and hammerOrig[p] * State.HammerScale or hammerOrig[p] if p.Size ~= target then p.Size = target if State.HammerReach then p.Massless = true p.CanCollide = false end end end end end end) -- No attack cooldown: hold your pre-swing speed for a moment after each swing do local lastSpeed = 16 local holdUntil = 0 local heldSpeed = 16 local function hookHammer(h) if h:IsA("Tool") then h.Activated:Connect(function() local hum = humanoid() if hum then heldSpeed = math.max(lastSpeed, hum.WalkSpeed) end holdUntil = tick() + 1.2 end) end end RunService.Heartbeat:Connect(function() local hum = humanoid() if not hum then return end if tick() > holdUntil then lastSpeed = hum.WalkSpeed end if State.NoCooldown and tick() < holdUntil and hum.WalkSpeed < heldSpeed then hum.WalkSpeed = heldSpeed end local h = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Hammer") if h and not h:GetAttribute("SilverHooked") then h:SetAttribute("SilverHooked", true) hookHammer(h) end end) end -- Beast door aura: triggers doors as you walk past them task.spawn(function() while task.wait(0.35) do if State.DoorAura and iAmBeast() then pcall(function() local root, rem = myRoot(), remote() if not root then return end for _, door in ipairs(Map.Doors) do local trig = door:FindFirstChild("DoorTrigger", true) or partOf(door) if trig and (trig.Position - root.Position).Magnitude < 12 then if firetouchinterest then firetouchinterest(root, trig, 0) firetouchinterest(root, trig, 1) end if rem then rem:FireServer("Input", "Trigger", true) end end end end) end end end) ---------------------------------------------------------------- -- Movement & environment ---------------------------------------------------------------- RunService.Heartbeat:Connect(function() if State.Speed then local hum = humanoid() if hum then hum.WalkSpeed = State.SpeedValue end end end) UserInputService.JumpRequest:Connect(function() if State.InfJump then local hum = humanoid() if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end end) RunService.Stepped:Connect(function() if State.NoClip and LocalPlayer.Character then for _, p in ipairs(LocalPlayer.Character:GetDescendants()) do if p:IsA("BasePart") then p.CanCollide = false end end end end) local origLighting = { Brightness = Lighting.Brightness, ClockTime = Lighting.ClockTime, FogEnd = Lighting.FogEnd, FogStart = Lighting.FogStart, GlobalShadows = Lighting.GlobalShadows, Ambient = Lighting.Ambient, OutdoorAmbient = Lighting.OutdoorAmbient, } local origAtmos = {} RunService.RenderStepped:Connect(function() if State.FullBright then Lighting.Brightness = 2 Lighting.ClockTime = 14 Lighting.FogStart = 0 Lighting.FogEnd = 1e6 Lighting.GlobalShadows = false Lighting.Ambient = Color3.fromRGB(210, 210, 210) Lighting.OutdoorAmbient = Color3.fromRGB(210, 210, 210) for _, a in ipairs(Lighting:GetChildren()) do if a:IsA("Atmosphere") then if not origAtmos[a] then origAtmos[a] = a.Density end a.Density = 0 end end end end) local function restoreLighting() for k, v in pairs(origLighting) do Lighting[k] = v end for a, d in pairs(origAtmos) do if a.Parent then a.Density = d end end end LocalPlayer.Idled:Connect(function() if State.AntiAFK then VirtualUser:CaptureController() VirtualUser:ClickButton2(Vector2.new()) end end) ---------------------------------------------------------------- -- MAIN GUI ---------------------------------------------------------------- local function buildMain() local Main = create("Frame", { Name = "Main", Size = UDim2.fromOffset(0, 0), Position = UDim2.fromScale(0.5, 0.5), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromRGB(14, 14, 20), BorderSizePixel = 0, ClipsDescendants = true, Parent = Gui, }, {create("UICorner", {CornerRadius = UDim.new(0, 14)})}) local mainStroke = create("UIStroke", {Thickness = 2, Parent = Main}) onAccent(function(c) mainStroke.Color = c end) local bg = gradient(Main, Color3.fromRGB(26, 26, 38), Color3.fromRGB(10, 10, 16), 135) tween(Main, 0.55, {Size = UDim2.fromOffset(620, 420)}, Enum.EasingStyle.Back) -- animated glow on the border + background local t0 = tick() local conn = RunService.RenderStepped:Connect(function() local t = tick() - t0 bg.Rotation = 135 + math.sin(t * 0.8) * 25 mainStroke.Transparency = 0.15 + (math.sin(t * 2.5) + 1) * 0.15 end) Main.Destroying:Connect(function() conn:Disconnect() end) local Top = create("Frame", { Size = UDim2.new(1, 0, 0, 44), BackgroundColor3 = Color3.fromRGB(9, 9, 14), BorderSizePixel = 0, Parent = Main, }) local title = create("TextLabel", { Size = UDim2.new(1, -20, 1, 0), Position = UDim2.fromOffset(16, 0), BackgroundTransparency = 1, Text = "SILVER HUB V2 • Flee the Facility", Font = Enum.Font.GothamBlack, TextSize = 17, TextXAlignment = Enum.TextXAlignment.Left, TextColor3 = Color3.new(1, 1, 1), Parent = Top, }) local tg = create("UIGradient", { Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(140, 140, 160)), ColorSequenceKeypoint.new(0.5, Color3.new(1, 1, 1)), ColorSequenceKeypoint.new(1, Color3.fromRGB(140, 140, 160)), }), Parent = title, }) local conn2 = RunService.RenderStepped:Connect(function() tg.Offset = Vector2.new(((tick() * 0.5) % 2) - 1, 0) end) Main.Destroying:Connect(function() conn2:Disconnect() end) local line = create("Frame", { Size = UDim2.new(1, 0, 0, 3), Position = UDim2.new(0, 0, 1, -3), BorderSizePixel = 0, BackgroundColor3 = Color3.new(1, 1, 1), Parent = Top, }) local lg = create("UIGradient", {Parent = line}) onAccent(function(c) lg.Color = ColorSequence.new(Color3.fromRGB(20, 20, 30), c) end) local conn3 = RunService.RenderStepped:Connect(function() lg.Offset = Vector2.new(math.sin(tick() * 1.5) * 0.4, 0) end) Main.Destroying:Connect(function() conn3:Disconnect() end) do -- dragging local dragging, startPos, startMouse Top.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging, startMouse, startPos = true, i.Position, Main.Position end end) UserInputService.InputChanged:Connect(function(i) if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then local d = i.Position - startMouse Main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y) end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end) end local Side = create("Frame", { Size = UDim2.new(0, 135, 1, -44), Position = UDim2.fromOffset(0, 44), BackgroundColor3 = Color3.fromRGB(11, 11, 17), BorderSizePixel = 0, Parent = Main, }, { create("UIListLayout", {Padding = UDim.new(0, 6), SortOrder = Enum.SortOrder.LayoutOrder}), create("UIPadding", {PaddingTop = UDim.new(0, 10), PaddingLeft = UDim.new(0, 8), PaddingRight = UDim.new(0, 8)}), }) local Content = create("Frame", { Size = UDim2.new(1, -135, 1, -44), Position = UDim2.fromOffset(135, 44), BackgroundTransparency = 1, Parent = Main, }) local pages, tabButtons = {}, {} local function selectTab(name) for n, p in pairs(pages) do p.Visible = (n == name) end for n, b in pairs(tabButtons) do tween(b, 0.2, {BackgroundTransparency = (n == name) and 0.05 or 0.75}) end end local function newTab(name, order) local btn = create("TextButton", { Size = UDim2.new(1, 0, 0, 36), BackgroundColor3 = Color3.fromRGB(40, 40, 55), BackgroundTransparency = 0.75, Text = name, Font = Enum.Font.GothamSemibold, TextSize = 14, TextColor3 = Color3.new(1, 1, 1), AutoButtonColor = false, LayoutOrder = order, Parent = Side, }, {create("UICorner", {CornerRadius = UDim.new(0, 8)})}) onAccent(function(c) -- selected tab glows with the accent color btn.BackgroundColor3 = c end) local page = create("ScrollingFrame", { Size = UDim2.new(1, -16, 1, -16), Position = UDim2.fromOffset(8, 8), BackgroundTransparency = 1, BorderSizePixel = 0, ScrollBarThickness = 3, CanvasSize = UDim2.new(), AutomaticCanvasSize = Enum.AutomaticSize.Y, Visible = false, Parent = Content, }, { create("UIListLayout", {Padding = UDim.new(0, 8), SortOrder = Enum.SortOrder.LayoutOrder}), create("UIPadding", {PaddingRight = UDim.new(0, 6)}), }) pages[name], tabButtons[name] = page, btn btn.MouseEnter:Connect(playHover) btn.MouseButton1Click:Connect(function() selectTab(name) end) return page end local function header(page, text) create("TextLabel", { Size = UDim2.new(1, 0, 0, 20), BackgroundTransparency = 1, Text = text, Font = Enum.Font.GothamBold, TextSize = 13, TextColor3 = Color3.fromRGB(170, 170, 190), TextXAlignment = Enum.TextXAlignment.Left, Parent = page, }) end local function note(page, text, h) create("TextLabel", { Size = UDim2.new(1, 0, 0, h or 32), BackgroundTransparency = 1, Text = text, TextWrapped = true, Font = Enum.Font.Gotham, TextSize = 12, TextColor3 = Color3.fromRGB(130, 130, 150), TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Top, Parent = page, }) end local function toggle(page, text, key, cb) local row = create("TextButton", { Size = UDim2.new(1, 0, 0, 38), BackgroundColor3 = Color3.fromRGB(28, 28, 40), Text = "", AutoButtonColor = false, Parent = page, }, {create("UICorner", {CornerRadius = UDim.new(0, 8)})}) create("TextLabel", { Size = UDim2.new(1, -70, 1, 0), Position = UDim2.fromOffset(12, 0), BackgroundTransparency = 1, Text = text, Font = Enum.Font.Gotham, TextSize = 14, TextColor3 = Color3.new(1, 1, 1), TextXAlignment = Enum.TextXAlignment.Left, Parent = row, }) local track = create("Frame", { Size = UDim2.fromOffset(40, 20), Position = UDim2.new(1, -52, 0.5, -10), BackgroundColor3 = Color3.fromRGB(55, 55, 70), Parent = row, }, {create("UICorner", {CornerRadius = UDim.new(1, 0)})}) local knob = create("Frame", { Size = UDim2.fromOffset(16, 16), Position = UDim2.fromOffset(2, 2), BackgroundColor3 = Color3.new(1, 1, 1), Parent = track, }, {create("UICorner", {CornerRadius = UDim.new(1, 0)})}) local function refresh() local on = State[key] tween(knob, 0.15, {Position = on and UDim2.fromOffset(22, 2) or UDim2.fromOffset(2, 2)}) tween(track, 0.15, {BackgroundColor3 = on and Accent or Color3.fromRGB(55, 55, 70)}) end refreshers[key] = function() refresh() if cb then cb(State[key]) end end onAccent(refresh) hoverable(row, {BackgroundColor3 = Color3.fromRGB(28, 28, 40)}, {BackgroundColor3 = Color3.fromRGB(38, 38, 54)}) row.MouseButton1Click:Connect(function() State[key] = not State[key] refresh() if cb then cb(State[key]) end end) end local function slider(page, text, min, max, default, cb, decimals) decimals = decimals or 0 local mult = 10 ^ decimals local row = create("Frame", { Size = UDim2.new(1, 0, 0, 52), BackgroundColor3 = Color3.fromRGB(28, 28, 40), Parent = page, }, {create("UICorner", {CornerRadius = UDim.new(0, 8)})}) local label = create("TextLabel", { Size = UDim2.new(1, -20, 0, 22), Position = UDim2.fromOffset(12, 4), BackgroundTransparency = 1, Text = text .. ": " .. default, Font = Enum.Font.Gotham, TextSize = 14, TextColor3 = Color3.new(1, 1, 1), TextXAlignment = Enum.TextXAlignment.Left, Parent = row, }) local bar = create("TextButton", { Size = UDim2.new(1, -24, 0, 8), Position = UDim2.fromOffset(12, 33), Text = "", AutoButtonColor = false, BackgroundColor3 = Color3.fromRGB(55, 55, 70), Parent = row, }, {create("UICorner", {CornerRadius = UDim.new(1, 0)})}) local fill = create("Frame", { Size = UDim2.fromScale((default - min) / (max - min), 1), BorderSizePixel = 0, Parent = bar, }, {create("UICorner", {CornerRadius = UDim.new(1, 0)})}) onAccent(function(c) fill.BackgroundColor3 = c end) bar.MouseEnter:Connect(playHover) local dragging = false local function update(x) local a = math.clamp((x - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1) local v = math.floor((min + (max - min) * a) * mult + 0.5) / mult fill.Size = UDim2.fromScale(a, 1) label.Text = text .. ": " .. v cb(v) end bar.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = true update(i.Position.X) end end) UserInputService.InputChanged:Connect(function(i) if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then update(i.Position.X) end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end) end local function button(page, text, cb) local b = create("TextButton", { Size = UDim2.new(1, 0, 0, 36), BackgroundColor3 = Color3.fromRGB(28, 28, 40), Text = text, Font = Enum.Font.GothamSemibold, TextSize = 14, TextColor3 = Color3.new(1, 1, 1), AutoButtonColor = false, Parent = page, }, {create("UICorner", {CornerRadius = UDim.new(0, 8)})}) hoverable(b, {BackgroundColor3 = Color3.fromRGB(28, 28, 40)}, {BackgroundColor3 = Color3.fromRGB(42, 42, 60)}) b.MouseButton1Click:Connect(function() cb(b) end) return b end local function keybind(page, label, onSet, current) local b local function txt(k) return label .. ": " .. k.Name .. " (click to change)" end b = button(page, txt(current()), function() b.Text = "Press any key..." local conn conn = UserInputService.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.Keyboard then onSet(i.KeyCode) b.Text = txt(i.KeyCode) conn:Disconnect() end end) end) end -- ESP local esp = newTab("ESP", 1) header(esp, "PLAYERS") toggle(esp, "Beast ESP (distance + status)", "BeastESP") toggle(esp, "Survivor ESP", "SurvivorESP") header(esp, "OBJECTIVES") toggle(esp, "Computer ESP (R / Y / G)", "ComputerESP") toggle(esp, "Exit Gate ESP", "ExitESP") toggle(esp, "Freeze Pod ESP", "PodESP") note(esp, "Computers: red = not started, yellow = in progress, green = completed. Exit turns green once every computer is done.", 44) -- Survivor local sv = newTab("Survivor", 2) header(sv, "HACKING") toggle(sv, "Auto Skill Check", "AutoSkill") toggle(sv, "No-Fail Hacking", "NoFail") header(sv, "TEAMWORK") toggle(sv, "Instant Rescue", "InstantRescue") slider(sv, "Rescue Range", 6, 40, State.RescueRange, function(v) State.RescueRange = v end) header(sv, "INTERACTION") toggle(sv, "Interact Distance Increaser", "InteractBoost") slider(sv, "Distance Multiplier", 1, 5, State.InteractMult, function(v) State.InteractMult = v end, 1) note(sv, "Interact boost only affects objects that use Roblox ProximityPrompts.", 32) -- Beast local bs = newTab("Beast", 3) header(bs, "CAPTURE") toggle(bs, "Auto-Tie to Pod", "AutoTie") header(bs, "HAMMER") toggle(bs, "Extended Hammer Reach", "HammerReach") slider(bs, "Hammer Scale", 1, 3, State.HammerScale, function(v) State.HammerScale = v end, 1) toggle(bs, "No Attack Cooldown", "NoCooldown") header(bs, "DOORS") toggle(bs, "Beast Door Aura", "DoorAura") -- Misc local misc = newTab("Misc", 4) header(misc, "MOVEMENT") toggle(misc, "WalkSpeed Customizer", "Speed", function(on) if not on then local h = humanoid() if h then h.WalkSpeed = 16 end end end) slider(misc, "Speed", 8, 100, State.SpeedValue, function(v) State.SpeedValue = v end) toggle(misc, "Noclip (hotkey in Settings)", "NoClip") toggle(misc, "Infinite Jump", "InfJump") header(misc, "WORLD") toggle(misc, "Full Bright", "FullBright", function(on) if not on then restoreLighting() end end) -- Settings local set = newTab("Settings", 5) header(set, "HOTKEYS") keybind(set, "GUI Toggle", function(k) ToggleKey = k end, function() return ToggleKey end) keybind(set, "Noclip Toggle", function(k) NoClipKey = k end, function() return NoClipKey end) header(set, "GUI COLOR") local presets = { Color3.fromRGB(110, 200, 255), Color3.fromRGB(255, 80, 80), Color3.fromRGB(80, 255, 140), Color3.fromRGB(255, 180, 60), Color3.fromRGB(200, 90, 255), Color3.fromRGB(255, 110, 190), } local presetRow = create("Frame", {Size = UDim2.new(1, 0, 0, 38), BackgroundTransparency = 1, Parent = set}, { create("UIListLayout", {FillDirection = Enum.FillDirection.Horizontal, Padding = UDim.new(0, 8)}), }) for _, c in ipairs(presets) do local sw = create("TextButton", { Size = UDim2.fromOffset(34, 34), BackgroundColor3 = c, Text = "", AutoButtonColor = false, Parent = presetRow, }, {create("UICorner", {CornerRadius = UDim.new(0, 8)})}) hoverable(sw, {Size = UDim2.fromOffset(34, 34)}, {Size = UDim2.fromOffset(38, 38)}) sw.MouseButton1Click:Connect(function() setAccent(c) end) end local rgb = {Accent.R * 255, Accent.G * 255, Accent.B * 255} local function applyRGB() setAccent(Color3.fromRGB(rgb[1], rgb[2], rgb[3])) end slider(set, "Red", 0, 255, math.floor(rgb[1]), function(v) rgb[1] = v applyRGB() end) slider(set, "Green", 0, 255, math.floor(rgb[2]), function(v) rgb[2] = v applyRGB() end) slider(set, "Blue", 0, 255, math.floor(rgb[3]), function(v) rgb[3] = v applyRGB() end) header(set, "SERVER") toggle(set, "Anti AFK", "AntiAFK") button(set, "Rejoin Server", function() TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId, LocalPlayer) end) selectTab("ESP") UserInputService.InputBegan:Connect(function(i, gpe) if gpe then return end if i.KeyCode == ToggleKey then Main.Visible = not Main.Visible elseif i.KeyCode == NoClipKey then State.NoClip = not State.NoClip if refreshers.NoClip then refreshers.NoClip() end end end) end ---------------------------------------------------------------- -- WELCOME POPUP ---------------------------------------------------------------- local function showWelcome() local overlay = create("Frame", { Size = UDim2.fromScale(1, 1), BackgroundColor3 = Color3.new(0, 0, 0), BackgroundTransparency = 1, Parent = Gui, }) tween(overlay, 0.3, {BackgroundTransparency = 0.4}) local box = create("Frame", { Size = UDim2.fromOffset(0, 0), Position = UDim2.fromScale(0.5, 0.5), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromRGB(16, 16, 22), ClipsDescendants = true, Parent = overlay, }, {create("UICorner", {CornerRadius = UDim.new(0, 14)})}) local st = create("UIStroke", {Thickness = 2, Parent = box}) onAccent(function(c) st.Color = c end) tween(box, 0.45, {Size = UDim2.fromOffset(360, 180)}, Enum.EasingStyle.Back) create("TextLabel", { Size = UDim2.new(1, 0, 0, 80), Position = UDim2.fromOffset(0, 20), BackgroundTransparency = 1, Text = "Welcome To Silver Hub!", Font = Enum.Font.GothamBold, TextSize = 26, TextColor3 = Color3.new(1, 1, 1), Parent = box, }) local ok = create("TextButton", { Size = UDim2.fromOffset(120, 38), Position = UDim2.new(0.5, -60, 1, -60), Text = "OK", Font = Enum.Font.GothamBold, TextSize = 16, TextColor3 = Color3.new(0, 0, 0), AutoButtonColor = false, Parent = box, }, {create("UICorner", {CornerRadius = UDim.new(0, 8)})}) onAccent(function(c) ok.BackgroundColor3 = c end) ok.MouseEnter:Connect(function() playHover() tween(ok, 0.15, {Size = UDim2.fromOffset(130, 40)}) end) ok.MouseLeave:Connect(function() tween(ok, 0.15, {Size = UDim2.fromOffset(120, 38)}) end) ok.MouseButton1Click:Connect(function() tween(box, 0.3, {Size = UDim2.fromOffset(0, 0)}) tween(overlay, 0.3, {BackgroundTransparency = 1}) task.wait(0.35) overlay:Destroy() buildMain() end) end ---------------------------------------------------------------- -- FLASHY LOADING SCREEN ---------------------------------------------------------------- local function showLoading() local alive = true local conns = {} local frame = create("Frame", { Size = UDim2.fromScale(1, 1), BackgroundColor3 = Color3.new(1, 1, 1), ClipsDescendants = true, Parent = Gui, }) local bgGrad = create("UIGradient", { Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(6, 10, 22)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(10, 28, 44)), ColorSequenceKeypoint.new(1, Color3.fromRGB(14, 8, 28)), }), Parent = frame, }) -- Falling data streaks local function spawnStreak() task.spawn(function() local w = math.random(2, 4) local h = math.random(40, 120) local s = create("Frame", { Size = UDim2.fromOffset(w, h), BackgroundColor3 = Accent, BackgroundTransparency = 0.6, BorderSizePixel = 0, Parent = frame, }) create("UIGradient", {Transparency = NumberSequence.new(1, 0), Rotation = 90, Parent = s}) while alive do local x = math.random() s.Position = UDim2.new(x, 0, -0.2, 0) local dur = math.random(12, 30) / 10 tween(s, dur, {Position = UDim2.new(x, 0, 1.2, 0)}, Enum.EasingStyle.Linear) task.wait(dur + math.random() * 0.5) end s:Destroy() end) end for _ = 1, 28 do spawnStreak() task.wait(0.03) end -- Spinning rings around the core local function ring(sizePx, thickness, speed) local r = create("Frame", { Size = UDim2.fromOffset(sizePx, sizePx), Position = UDim2.fromScale(0.5, 0.36), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundTransparency = 1, Parent = frame, }, {create("UICorner", {CornerRadius = UDim.new(1, 0)})}) local s = create("UIStroke", {Thickness = thickness, Color = Accent, Parent = r}) local g = create("UIGradient", { Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.5, 1), NumberSequenceKeypoint.new(1, 0), }), Parent = s, }) table.insert(conns, RunService.RenderStepped:Connect(function(dt) g.Rotation = (g.Rotation + speed * dt * 60) % 360 end)) end ring(200, 4, 4) ring(160, 3, -7) ring(240, 2, 2) -- Pulsing diamond core local core = create("Frame", { Size = UDim2.fromOffset(70, 70), Position = UDim2.fromScale(0.5, 0.36), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Accent, Rotation = 45, Parent = frame, }, {create("UICorner", {CornerRadius = UDim.new(0, 10)})}) local inner = create("Frame", { Size = UDim2.fromOffset(34, 34), Position = UDim2.fromScale(0.5, 0.36), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.new(1, 1, 1), Rotation = 45, Parent = frame, }, {create("UICorner", {CornerRadius = UDim.new(0, 6)})}) -- Scanline local scan = create("Frame", { Size = UDim2.new(1, 0, 0, 3), BackgroundColor3 = Accent, BackgroundTransparency = 0.5, BorderSizePixel = 0, Parent = frame, }) local title = create("TextLabel", { Size = UDim2.new(1, 0, 0, 56), Position = UDim2.new(0, 0, 0.56, 0), BackgroundTransparency = 1, Text = "Loading Silver HubV2", Font = Enum.Font.GothamBlack, TextSize = 42, TextColor3 = Color3.new(1, 1, 1), Parent = frame, }) local tStroke = create("UIStroke", {Thickness = 2, Color = Accent, Transparency = 0.4, Parent = title}) local tGrad = create("UIGradient", { Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(110, 110, 135)), ColorSequenceKeypoint.new(0.5, Color3.new(1, 1, 1)), ColorSequenceKeypoint.new(1, Color3.fromRGB(110, 110, 135)), }), Parent = title, }) local status = create("TextLabel", { Size = UDim2.new(1, 0, 0, 24), Position = UDim2.new(0, 0, 0.56, 62), BackgroundTransparency = 1, Text = "Initializing...", Font = Enum.Font.Gotham, TextSize = 16, TextColor3 = Color3.fromRGB(190, 200, 215), Parent = frame, }) local barBG = create("Frame", { Size = UDim2.fromOffset(440, 12), Position = UDim2.new(0.5, -220, 0.56, 100), BackgroundColor3 = Color3.fromRGB(30, 36, 52), Parent = frame, }, {create("UICorner", {CornerRadius = UDim.new(1, 0)})}) local barFill = create("Frame", { Size = UDim2.fromScale(0, 1), BackgroundColor3 = Color3.new(1, 1, 1), BorderSizePixel = 0, Parent = barBG, }, {create("UICorner", {CornerRadius = UDim.new(1, 0)})}) create("UIGradient", {Color = ColorSequence.new(Accent, Color3.new(1, 1, 1)), Parent = barFill}) local percent = create("TextLabel", { Size = UDim2.new(1, 0, 0, 22), Position = UDim2.new(0, 0, 0.56, 120), BackgroundTransparency = 1, Text = "0%", Font = Enum.Font.GothamBold, TextSize = 18, TextColor3 = Color3.new(1, 1, 1), Parent = frame, }) local t0 = tick() table.insert(conns, RunService.RenderStepped:Connect(function() local t = tick() - t0 bgGrad.Rotation = (t * 25) % 360 tGrad.Offset = Vector2.new(((t * 0.7) % 2) - 1, 0) local pulse = (math.sin(t * 4) + 1) / 2 core.Size = UDim2.fromOffset(60 + pulse * 22, 60 + pulse * 22) core.Rotation = 45 + t * 60 inner.Rotation = 45 - t * 120 scan.Position = UDim2.new(0, 0, (t * 0.35) % 1, 0) tStroke.Transparency = 0.2 + pulse * 0.5 end)) local steps = { {"Scanning facility layout...", 20}, {"Loading ESP modules...", 42}, {"Loading survivor tools...", 64}, {"Loading beast tools...", 84}, {"Ready. Good luck!", 100}, } local cur = 0 for _, s in ipairs(steps) do status.Text = s[1] tween(barFill, 0.7, {Size = UDim2.fromScale(s[2] / 100, 1)}) local from, startT = cur, tick() while tick() - startT < 0.8 do cur = math.floor(from + (s[2] - from) * math.min((tick() - startT) / 0.7, 1)) percent.Text = cur .. "%" task.wait() end cur = s[2] percent.Text = cur .. "%" end task.wait(0.2) local flash = create("Frame", { Size = UDim2.fromScale(1, 1), BackgroundColor3 = Color3.new(1, 1, 1), BackgroundTransparency = 1, ZIndex = 50, Parent = frame, }) tween(flash, 0.2, {BackgroundTransparency = 0}) task.wait(0.25) alive = false for _, c in ipairs(conns) do c:Disconnect() end frame:Destroy() showWelcome() end showLoading()