-- Evade Hub Premium - Rayfield Gen2 -- Fixed & Enhanced Version -- Game: Evade (9872472334) local success, Rayfield = pcall(function() return loadstring(game:HttpGet("https://sirius.menu/gen2"))() end) if not success then warn("Failed to load Rayfield Gen2") return end -- Services local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local Lighting = game:GetService("Lighting") local TeleportService = game:GetService("TeleportService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local VirtualInputManager = game:GetService("VirtualInputManager") local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local Mouse = LocalPlayer:GetMouse() -- Configuration local Config = { ESP = { Enabled = false, Players = false, Items = false, Monsters = false, DownedPlayers = false, Boxes = true, Tracers = false, Names = true, Distance = true, TeamCheck = true }, Movement = { Speed = 16, Fly = false, FlySpeed = 100, NoClip = false, InfiniteJump = false, EmoteDash = false, DashSpeed = 200, AutoSprint = false }, Auto = { AutoCollect = false, AutoRevive = false, AutoFarm = false, AutoEscape = false, AutoEmote = false, AutoRespawn = false }, Misc = { FOV = 70, FullBright = false, NoFog = false, AntiAFK = false, GodMode = false, FreeEmotes = false, NoSlowdown = false }, Detection = { ModDetect = true, AdminDetect = true, Notify = true } } -- Variables local ESPObjects = {} local FlyConnection, NoClipConnection, AutoCollectConnection local AutoReviveConnection, AutoFarmConnection, AntiAFKConnection local EmoteDashConnection, GodModeConnection local OriginalWalkSpeed = 16 local IsFlying = false local EmotesUnlocked = false -- Admin/Mod List local StaffRoles = {"mod", "admin", "developer", "owner", "staff", "manager", "helper", "trial", "dev"} -- Create Window local Window = Rayfield:CreateWindow({ Name = "Evade Hub Premium", Subtitle = "v2.0 - Enhanced", TabWidth = 160, Size = UDim2.new(0, 600, 0, 450), Acrylic = true, Theme = "Dark", MinimizeKey = Enum.KeyCode.RightShift, ConfigurationSaving = { Enabled = true, FolderName = "EvadeHub", FileName = "Config" } }) -- Tabs local MainTab = Window:CreateTab("Main", "home") local ESPTab = Window:CreateTab("ESP", "eye") local MovementTab = Window:CreateTab("Movement", "zap") local AutoTab = Window:CreateTab("Auto", "bot") local PlayerTab = Window:CreateTab("Players", "users") local EmoteTab = Window:CreateTab("Emotes", "smile") local MiscTab = Window:CreateTab("Misc", "settings") local ServerTab = Window:CreateTab("Server", "server") -- Utility Functions local function GetCharacter() return LocalPlayer.Character end local function GetHumanoid() local char = GetCharacter() if char then return char:FindFirstChildOfClass("Humanoid") end return nil end local function GetRootPart() local char = GetCharacter() if char then return char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Torso") end return nil end local function Notify(title, content, duration) Rayfield:Notify({ Title = title or "Evade Hub", Content = content or "", Duration = duration or 3, Image = "bell" }) end -- ESP System local function CreateESP(target, type, color) if not target or not target.Parent then return nil end local esp = { Target = target, Type = type, Box = Drawing.new("Square"), Tracer = Drawing.new("Line"), Text = Drawing.new("Text"), Color = color or Color3.fromRGB(255, 255, 255) } esp.Box.Visible = false esp.Box.Thickness = 2 esp.Box.Filled = false esp.Box.Color = color or Color3.fromRGB(255, 255, 255) esp.Tracer.Visible = false esp.Tracer.Thickness = 1 esp.Tracer.Color = color or Color3.fromRGB(255, 255, 255) esp.Text.Visible = false esp.Text.Size = 14 esp.Text.Center = true esp.Text.Outline = true esp.Text.Color = Color3.fromRGB(255, 255, 255) table.insert(ESPObjects, esp) return esp end local function ClearESP() for _, esp in pairs(ESPObjects) do if esp.Box then esp.Box:Remove() end if esp.Tracer then esp.Tracer:Remove() end if esp.Text then esp.Text:Remove() end end ESPObjects = {} end local function UpdateESP() if not Config.ESP.Enabled then for _, esp in pairs(ESPObjects) do esp.Box.Visible = false esp.Tracer.Visible = false esp.Text.Visible = false end return end for _, esp in pairs(ESPObjects) do if not esp.Target or not esp.Target.Parent then esp.Box.Visible = false esp.Tracer.Visible = false esp.Text.Visible = false continue end local pos = esp.Target.Position local screenPos, onScreen = Camera:WorldToViewportPoint(pos) local distance = (Camera.CFrame.Position - pos).Magnitude if onScreen and distance < 2000 then local scale = 1000 / distance local size = math.clamp(scale, 10, 100) if Config.ESP.Boxes then esp.Box.Size = Vector2.new(size, size * 1.5) esp.Box.Position = Vector2.new(screenPos.X - size/2, screenPos.Y - size * 0.75) esp.Box.Visible = true else esp.Box.Visible = false end if Config.ESP.Tracers then esp.Tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y) esp.Tracer.To = Vector2.new(screenPos.X, screenPos.Y) esp.Tracer.Visible = true else esp.Tracer.Visible = false end if Config.ESP.Names or Config.ESP.Distance then local text = "" if Config.ESP.Names then text = esp.Type end if Config.ESP.Distance then text = text .. (text ~= "" and " | " or "") .. string.format("%.0fm", distance) end esp.Text.Text = text esp.Text.Position = Vector2.new(screenPos.X, screenPos.Y - size - 15) esp.Text.Visible = true else esp.Text.Visible = false end else esp.Box.Visible = false esp.Tracer.Visible = false esp.Text.Visible = false end end end local function ScanForESP() ClearESP() if not Config.ESP.Enabled then return end -- Players if Config.ESP.Players then for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character then local root = player.Character:FindFirstChild("HumanoidRootPart") if root then local isDowned = player.Character:FindFirstChild("Downed") or player.Character:FindFirstChild("Knocked") if Config.ESP.DownedPlayers and isDowned then CreateESP(root, player.Name .. " [DOWNED]", Color3.fromRGB(255, 0, 255)) elseif not Config.ESP.TeamCheck or not isDowned then CreateESP(root, player.Name, Color3.fromRGB(0, 255, 0)) end end end end end -- Items if Config.ESP.Items then for _, obj in pairs(Workspace:GetDescendants()) do if obj:IsA("BasePart") then local name = obj.Name:lower() if name:find("cash") or name:find("coin") or name:find("money") or name:find("collectible") then CreateESP(obj, "💰 Cash", Color3.fromRGB(255, 215, 0)) elseif name:find("medkit") or name:find("heal") then CreateESP(obj, "❤️ Medkit", Color3.fromRGB(255, 0, 100)) elseif name:find("battery") or name:find("flashlight") then CreateESP(obj, "🔋 Item", Color3.fromRGB(100, 100, 255)) end end end end -- Monsters/Nextbots if Config.ESP.Monsters then for _, obj in pairs(Workspace:GetDescendants()) do if obj:IsA("Model") then local name = obj.Name:lower() if name:find("nextbot") or name:find("bot") or name:find("monster") or name:find("scary") then local root = obj:FindFirstChild("HumanoidRootPart") or obj:FindFirstChildWhichIsA("BasePart") if root then CreateESP(root, "👹 " .. obj.Name, Color3.fromRGB(255, 0, 0)) end end end end end end -- Movement Features local function ToggleFly(enabled) IsFlying = enabled if FlyConnection then FlyConnection:Disconnect() FlyConnection = nil end local root = GetRootPart() if not root then return end if enabled then local bv = Instance.new("BodyVelocity") bv.Name = "FlyVelocity" bv.MaxForce = Vector3.new(9e9, 9e9, 9e9) bv.Velocity = Vector3.zero bv.Parent = root FlyConnection = RunService.RenderStepped:Connect(function() if not GetCharacter() then return end local newRoot = GetRootPart() if not newRoot then return end if not newRoot:FindFirstChild("FlyVelocity") then bv = Instance.new("BodyVelocity") bv.Name = "FlyVelocity" bv.MaxForce = Vector3.new(9e9, 9e9, 9e9) bv.Parent = newRoot end local vel = Vector3.zero local look = Camera.CFrame.LookVector local right = Camera.CFrame.RightVector if UserInputService:IsKeyDown(Enum.KeyCode.W) then vel = vel + look end if UserInputService:IsKeyDown(Enum.KeyCode.S) then vel = vel - look end if UserInputService:IsKeyDown(Enum.KeyCode.A) then vel = vel - right end if UserInputService:IsKeyDown(Enum.KeyCode.D) then vel = vel + right end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then vel = vel + Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then vel = vel - Vector3.new(0, 1, 0) end if vel.Magnitude > 0 then vel = vel.Unit * Config.Movement.FlySpeed end bv.Velocity = vel end) else local root = GetRootPart() if root then local bv = root:FindFirstChild("FlyVelocity") if bv then bv:Destroy() end end end end local function ToggleNoClip(enabled) if NoClipConnection then NoClipConnection:Disconnect() NoClipConnection = nil end if enabled then NoClipConnection = RunService.Stepped:Connect(function() local char = GetCharacter() if char then for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end) else local char = GetCharacter() if char then for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end end end local function EmoteDash() if not Config.Movement.EmoteDash then return end local humanoid = GetHumanoid() local root = GetRootPart() if not humanoid or not root then return end -- Play emote animation local anim = Instance.new("Animation") anim.AnimationId = "rbxassetid://3333499508" -- Default dance local track = humanoid:LoadAnimation(anim) track:Play() -- Dash forward local dashDir = root.CFrame.LookVector local bv = Instance.new("BodyVelocity") bv.MaxForce = Vector3.new(9e9, 9e9, 9e9) bv.Velocity = dashDir * Config.Movement.DashSpeed bv.Parent = root task.delay(0.3, function() bv:Destroy() track:Stop() end) end -- Auto Features local function ToggleAutoCollect(enabled) if AutoCollectConnection then AutoCollectConnection:Disconnect() AutoCollectConnection = nil end if enabled then AutoCollectConnection = RunService.Heartbeat:Connect(function() local root = GetRootPart() if not root then return end for _, obj in pairs(Workspace:GetDescendants()) do if obj:IsA("BasePart") and obj.Parent then local name = obj.Name:lower() if (name:find("cash") or name:find("coin") or name:find("money")) then local dist = (obj.Position - root.Position).Magnitude if dist < 100 and dist > 5 then root.CFrame = CFrame.new(obj.Position + Vector3.new(0, 3, 0)) task.wait(0.1) end end end end end) end end local function ToggleAutoRevive(enabled) if AutoReviveConnection then AutoReviveConnection:Disconnect() AutoReviveConnection = nil end if enabled then AutoReviveConnection = RunService.Heartbeat:Connect(function() local myRoot = GetRootPart() if not myRoot then return end for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character then local isDowned = player.Character:FindFirstChild("Downed") or player.Character:FindFirstChild("Knocked") or player.Character:FindFirstChild("Humanoid") and player.Character.Humanoid.Health <= 0 if isDowned then local theirRoot = player.Character:FindFirstChild("HumanoidRootPart") if theirRoot then -- Teleport under map to them local revivePos = theirRoot.Position - Vector3.new(0, 10, 0) myRoot.CFrame = CFrame.new(revivePos) task.wait(0.5) -- Try to revive myRoot.CFrame = theirRoot.CFrame task.wait(1) end end end end end) end end local function ToggleAutoFarm(enabled) if AutoFarmConnection then AutoFarmConnection:Disconnect() AutoFarmConnection = nil end if enabled then Notify("Auto Farm", "Farming for cash and items...", 3) AutoFarmConnection = RunService.Heartbeat:Connect(function() if Config.Auto.AutoCollect then return end -- Don't conflict local root = GetRootPart() if not root then return end local nearestCash = nil local nearestDist = math.huge for _, obj in pairs(Workspace:GetDescendants()) do if obj:IsA("BasePart") then local name = obj.Name:lower() if name:find("cash") or name:find("coin") then local dist = (obj.Position - root.Position).Magnitude if dist < nearestDist and dist < 500 then nearestDist = dist nearestCash = obj end end end end if nearestCash then root.CFrame = CFrame.new(nearestCash.Position + Vector3.new(0, 5, 0)) end end) end end -- Admin/Mod Detection local function CheckPlayerRole(player) local success, result = pcall(function() -- Check display name, username, and team local text = (player.DisplayName .. " " .. player.Name):lower() for _, role in pairs(StaffRoles) do if text:find(role) then return true, role end end -- Check if they have admin tools if player.Character then for _, tool in pairs(player.Character:GetChildren()) do if tool:IsA("Tool") then local toolName = tool.Name:lower() if toolName:find("ban") or toolName:find("kick") or toolName:find("admin") or toolName:find("mod") then return true, "tool" end end end end return false, nil end) return success and result or false, nil end local function ScanForAdmins() for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer then local isStaff, role = CheckPlayerRole(player) if isStaff then if Config.Detection.Notify then Notify("⚠️ STAFF DETECTED", player.Name .. " (" .. (role or "staff") .. ")", 10) end return true, player end end end return false, nil end -- Free Emotes local function UnlockEmotes() if EmotesUnlocked then return end -- Common emote IDs local emotes = { {name = "Dance", id = "3333499508"}, {name = "Wave", id = "128777973"}, {name = "Point", id = "128853357"}, {name = "Laugh", id = "129423131"}, {name = "Cheer", id = "129423030"}, {name = "Jump", id = "125750702"}, {name = "Zombie", id = "3333491630"}, {name = "Monkey", id = "3333387824"}, {name = "Robot", id = "3338042785"}, {name = "Twirl", id = "3333392432"} } -- Store in config for later use Config.Emotes = emotes EmotesUnlocked = true Notify("Emotes", "Unlocked " .. #emotes .. " emotes!", 3) return emotes end -- God Mode local function ToggleGodMode(enabled) if GodModeConnection then GodModeConnection:Disconnect() GodModeConnection = nil end if enabled then GodModeConnection = RunService.Heartbeat:Connect(function() local humanoid = GetHumanoid() if humanoid then humanoid.Health = humanoid.MaxHealth humanoid.WalkSpeed = Config.Movement.Speed end end) end end -- Anti AFK local function ToggleAntiAFK(enabled) if AntiAFKConnection then AntiAFKConnection:Disconnect() AntiAFKConnection = nil end if enabled then local afkTime = 0 AntiAFKConnection = RunService.Heartbeat:Connect(function() afkTime = afkTime + 1 if afkTime >= 1500 then -- Every ~25 seconds VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Space, false, game) task.wait(0.1) VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Space, false, game) afkTime = 0 end end) end end -- UI Elements - MAIN TAB MainTab:CreateSection("Welcome") MainTab:CreateLabel("Evade Hub Premium v2.0") MainTab:CreateLabel("Press RightShift to toggle UI") MainTab:CreateSection("Quick Actions") MainTab:CreateButton({ Name = "Scan for Admins/Mods", Callback = function() local found, player = ScanForAdmins() if not found then Notify("Scan Complete", "No staff detected", 3) end end }) MainTab:CreateButton({ Name = "Full ESP Scan", Callback = function() ScanForESP() Notify("ESP", "Scanned for all entities", 2) end }) MainTab:CreateToggle({ Name = "Staff Detection", Default = Config.Detection.ModDetect, Callback = function(value) Config.Detection.ModDetect = value end }) -- ESP TAB ESPTab:CreateSection("ESP Settings") ESPTab:CreateToggle({ Name = "Enable ESP", Default = Config.ESP.Enabled, Callback = function(value) Config.ESP.Enabled = value if value then ScanForESP() else ClearESP() end end }) ESPTab:CreateToggle({ Name = "Player ESP", Default = Config.ESP.Players, Callback = function(value) Config.ESP.Players = value ScanForESP() end }) ESPTab:CreateToggle({ Name = "Item ESP (Cash/Items)", Default = Config.ESP.Items, Callback = function(value) Config.ESP.Items = value ScanForESP() end }) ESPTab:CreateToggle({ Name = "Monster/Nextbot ESP", Default = Config.ESP.Monsters, Callback = function(value) Config.ESP.Monsters = value ScanForESP() end }) ESPTab:CreateToggle({ Name = "Downed Players ESP", Default = Config.ESP.DownedPlayers, Callback = function(value) Config.ESP.DownedPlayers = value ScanForESP() end }) ESPTab:CreateSection("ESP Style") ESPTab:CreateToggle({ Name = "Show Boxes", Default = Config.ESP.Boxes, Callback = function(value) Config.ESP.Boxes = value end }) ESPTab:CreateToggle({ Name = "Show Tracers", Default = Config.ESP.Tracers, Callback = function(value) Config.ESP.Tracers = value end }) ESPTab:CreateToggle({ Name = "Show Names", Default = Config.ESP.Names, Callback = function(value) Config.ESP.Names = value end }) ESPTab:CreateToggle({ Name = "Show Distance", Default = Config.ESP.Distance, Callback = function(value) Config.ESP.Distance = value end }) -- MOVEMENT TAB MovementTab:CreateSection("Speed & Walk") MovementTab:CreateSlider({ Name = "WalkSpeed", Min = 16, Max = 500, Default = Config.Movement.Speed, Callback = function(value) Config.Movement.Speed = value local humanoid = GetHumanoid() if humanoid then humanoid.WalkSpeed = value end end }) MovementTab:CreateToggle({ Name = "Auto Sprint", Default = Config.Movement.AutoSprint, Callback = function(value) Config.Movement.AutoSprint = value end }) MovementTab:CreateToggle({ Name = "No Slowdown", Default = Config.Misc.NoSlowdown, Callback = function(value) Config.Misc.NoSlowdown = value end }) MovementTab:CreateSection("Flight") MovementTab:CreateToggle({ Name = "Fly", Default = Config.Movement.Fly, Callback = function(value) Config.Movement.Fly = value ToggleFly(value) if value then Notify("Fly", "WASD to move, Space/Shift for up/down", 3) end end }) MovementTab:CreateSlider({ Name = "Fly Speed", Min = 10, Max = 500, Default = Config.Movement.FlySpeed, Callback = function(value) Config.Movement.FlySpeed = value end }) MovementTab:CreateSection("Special Movement") MovementTab:CreateToggle({ Name = "Emote Dash (Press E)", Default = Config.Movement.EmoteDash, Callback = function(value) Config.Movement.EmoteDash = value if value then Notify("Emote Dash", "Press E to dash with emote!", 3) end end }) MovementTab:CreateSlider({ Name = "Dash Speed", Min = 50, Max = 500, Default = Config.Movement.DashSpeed, Callback = function(value) Config.Movement.DashSpeed = value end }) MovementTab:CreateToggle({ Name = "NoClip", Default = Config.Movement.NoClip, Callback = function(value) Config.Movement.NoClip = value ToggleNoClip(value) end }) MovementTab:CreateToggle({ Name = "Infinite Jump", Default = Config.Movement.InfiniteJump, Callback = function(value) Config.Movement.InfiniteJump = value end }) -- AUTO TAB AutoTab:CreateSection("Farming") AutoTab:CreateToggle({ Name = "Auto Collect Cash", Default = Config.Auto.AutoCollect, Callback = function(value) Config.Auto.AutoCollect = value ToggleAutoCollect(value) end }) AutoTab:CreateToggle({ Name = "Auto Farm Mode", Default = Config.Auto.AutoFarm, Callback = function(value) Config.Auto.AutoFarm = value ToggleAutoFarm(value) end }) AutoTab:CreateSection("Support") AutoTab:CreateToggle({ Name = "Auto Revive Players", Default = Config.Auto.AutoRevive, Callback = function(value) Config.Auto.AutoRevive = value ToggleAutoRevive(value) if value then Notify("Auto Revive", "Will teleport under map to revive downed players", 3) end end }) AutoTab:CreateToggle({ Name = "Auto Respawn", Default = Config.Auto.AutoRespawn, Callback = function(value) Config.Auto.AutoRespawn = value end }) AutoTab:CreateToggle({ Name = "Auto Emote", Default = Config.Auto.AutoEmote, Callback = function(value) Config.Auto.AutoEmote = value end }) -- PLAYER TAB PlayerTab:CreateSection("Player List") local PlayerList = PlayerTab:CreateDropdown({ Name = "Select Player", Options = {}, CurrentOption = "None", Callback = function(option) Config.SelectedPlayer = option end }) local function UpdatePlayerList() local names = {} for _, player in pairs(Players:GetPlayers()) do if player ~= LocalPlayer then table.insert(names, player.Name) end end PlayerList:SetOptions(names) end PlayerTab:CreateButton({ Name = "Refresh Player List", Callback = UpdatePlayerList }) PlayerTab:CreateButton({ Name = "Teleport to Player", Callback = function() if Config.SelectedPlayer and Config.SelectedPlayer ~= "None" then local target = Players:FindFirstChild(Config.SelectedPlayer) if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then local root = GetRootPart() if root then root.CFrame = target.Character.HumanoidRootPart.CFrame + Vector3.new(0, 3, 0) Notify("Teleport", "Teleported to " .. target.Name, 2) end end end end }) PlayerTab:CreateButton({ Name = "Spectate Player", Callback = function() if Config.SelectedPlayer and Config.SelectedPlayer ~= "None" then local target = Players:FindFirstChild(Config.SelectedPlayer) if target and target.Character then Camera.CameraSubject = target.Character:FindFirstChildOfClass("Humanoid") or target.Character Notify("Spectate", "Spectating " .. target.Name .. " - press any key to stop", 3) local conn conn = UserInputService.InputBegan:Connect(function() Camera.CameraSubject = GetHumanoid() conn:Disconnect() end) end end end }) -- EMOTE TAB EmoteTab:CreateSection("Free Emotes") EmoteTab:CreateButton({ Name = "Unlock All Emotes", Callback = function() local emotes = UnlockEmotes() -- Create buttons for each emote for _, emote in pairs(emotes) do EmoteTab:CreateButton({ Name = "Play " .. emote.name, Callback = function() local humanoid = GetHumanoid() if humanoid then local anim = Instance.new("Animation") anim.AnimationId = "rbxassetid://" .. emote.id local track = humanoid:LoadAnimation(anim) track:Play() end end }) end end }) EmoteTab:CreateToggle({ Name = "Free Emotes (Bypass)", Default = Config.Misc.FreeEmotes, Callback = function(value) Config.Misc.FreeEmotes = value if value then UnlockEmotes() end end }) -- MISC TAB MiscTab:CreateSection("Visual") MiscTab:CreateSlider({ Name = "Field of View", Min = 30, Max = 120, Default = Config.Misc.FOV, Callback = function(value) Config.Misc.FOV = value Camera.FieldOfView = value end }) MiscTab:CreateToggle({ Name = "Full Bright", Default = Config.Misc.FullBright, Callback = function(value) Config.Misc.FullBright = value Lighting.Brightness = value and 10 or 1 Lighting.GlobalShadows = not value end }) MiscTab:CreateToggle({ Name = "No Fog", Default = Config.Misc.NoFog, Callback = function(value) Config.Misc.NoFog = value Lighting.FogStart = value and 999999 or 0 Lighting.FogEnd = value and 9999999 or 1000 end }) MiscTab:CreateSection("Protection") MiscTab:CreateToggle({ Name = "God Mode", Default = Config.Misc.GodMode, Callback = function(value) Config.Misc.GodMode = value ToggleGodMode(value) end }) MiscTab:CreateToggle({ Name = "Anti AFK", Default = Config.Misc.AntiAFK, Callback = function(value) Config.Misc.AntiAFK = value ToggleAntiAFK(value) end }) -- SERVER TAB ServerTab:CreateSection("Server Management") ServerTab:CreateButton({ Name = "Rejoin Server", Callback = function() TeleportService:Teleport(game.PlaceId, LocalPlayer) end }) ServerTab:CreateButton({ Name = "Server Hop (Different Server)", Callback = function() local servers = {} local req = game:HttpGet("https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100") local data = game:GetService("HttpService"):JSONDecode(req) for _, server in pairs(data.data) do if server.playing < server.maxPlayers and server.id ~= game.JobId then table.insert(servers, server.id) end end if #servers > 0 then TeleportService:TeleportToPlaceInstance(game.PlaceId, servers[math.random(1, #servers)], LocalPlayer) end end }) ServerTab:CreateButton({ Name = "Join Lowest Player Server", Callback = function() local servers = {} local req = game:HttpGet("https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100") local data = game:GetService("HttpService"):JSONDecode(req) local lowest = nil for _, server in pairs(data.data) do if server.id ~= game.JobId then if not lowest or server.playing < lowest.playing then lowest = server end end end if lowest then TeleportService:TeleportToPlaceInstance(game.PlaceId, lowest.id, LocalPlayer) end end }) -- Connections RunService.RenderStepped:Connect(function() UpdateESP() -- Maintain walkspeed local humanoid = GetHumanoid() if humanoid then if Config.Movement.AutoSprint then humanoid.WalkSpeed = Config.Movement.Speed * 1.5 elseif Config.Misc.NoSlowdown then humanoid.WalkSpeed = Config.Movement.Speed else humanoid.WalkSpeed = Config.Movement.Speed end end end) -- Infinite Jump UserInputService.JumpRequest:Connect(function() if Config.Movement.InfiniteJump then local humanoid = GetHumanoid() if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end end) -- Emote Dash Keybind UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.E and Config.Movement.EmoteDash then EmoteDash() end end) -- Player joined/left handlers Players.PlayerAdded:Connect(function(player) UpdatePlayerList() if Config.Detection.ModDetect then task.wait(2) local isStaff, role = CheckPlayerRole(player) if isStaff then Notify("⚠️ STAFF JOINED", player.Name .. " (" .. (role or "staff") .. ")", 10) end end end) Players.PlayerRemoving:Connect(UpdatePlayerList) -- Character respawn handler LocalPlayer.CharacterAdded:Connect(function(char) task.wait(1) if Config.Movement.Fly then ToggleFly(true) end if Config.Movement.NoClip then ToggleNoClip(true) end if Config.Misc.GodMode then ToggleGodMode(true) end -- Auto respawn features if Config.Auto.AutoRespawn then task.wait(2) local humanoid = GetHumanoid() if humanoid and humanoid.Health <= 0 then -- Trigger respawn local event = ReplicatedStorage:FindFirstChild("RespawnEvent") or ReplicatedStorage:FindFirstChild("Revive") if event then event:FireServer() end end end end) -- Initial setup UpdatePlayerList() ScanForAdmins() -- Notification task.delay(2, function() Notify("Evade Hub Premium", "Loaded successfully! Press RightShift to toggle", 5) Notify("Keybinds", "E = Emote Dash | RightShift = Toggle UI", 5) end) print("Evade Hub Premium | Loaded")