Software Hub
Key RequiredUniversal

Software Hub

Universal ScriptSoftwareHubSoftwareHub 478 views 868 executesUpdated Feb 28, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•970 lines (35690 chars)
local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
local InterfaceManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/InterfaceManager.lua"))()

local Players          = game:GetService("Players")
local RunService       = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local VirtualUser      = game:GetService("VirtualUser")
local Lighting         = game:GetService("Lighting")
local TeleportService  = game:GetService("TeleportService")
local HttpService      = game:GetService("HttpService")
local Camera           = workspace.CurrentCamera
local LocalPlayer      = Players.LocalPlayer

local Window = Fluent:CreateWindow({
    Title       = "Software Hub",
    SubTitle    = "v1.0",
    TabWidth    = 160,
    Size        = UDim2.fromOffset(580, 460),
    Acrylic     = true,
    Theme       = "Darker",
    MinimizeKey = Enum.KeyCode.LeftControl
})

local Tabs = {
    Aim       = Window:AddTab({ Title = "Aim",        Icon = "crosshair"   }),
    Visual    = Window:AddTab({ Title = "Visual",     Icon = "eye"         }),
    Misc      = Window:AddTab({ Title = "Misc",       Icon = "layout-list" }),
    ScriptHub = Window:AddTab({ Title = "Script Hub", Icon = "book-open"   }),
    Setting   = Window:AddTab({ Title = "Setting",    Icon = "settings"    }),
}

-- =============================================
-- AIM TAB
-- =============================================

Tabs.Aim:AddSection("Aimbot")

local AimbotToggle = Tabs.Aim:AddToggle("AimbotEnabled", {
    Title       = "Aimbot Enable",
    Description = "Automatically aim at the nearest player",
    Default     = false,
    Callback    = function() end
})

local AimKeyDropdown = Tabs.Aim:AddDropdown("AimKey", {
    Title       = "Aim Key",
    Description = "Hold this key to activate aimbot",
    Values      = { "RMB (Right Click)", "LMB (Left Click)", "E", "Q", "F", "CapsLock", "Always On" },
    Default     = 1,
    Callback    = function() end
})

local SilentAimToggle = Tabs.Aim:AddToggle("SilentAim", {
    Title       = "Silent Aimbot",
    Description = "Redirects bullets to the nearest player",
    Default     = false,
    Callback    = function() end
})

local TeamCheckToggle = Tabs.Aim:AddToggle("TeamCheck", {
    Title       = "Team Check",
    Description = "Don't aim at teammates",
    Default     = false,
    Callback    = function() end
})

Tabs.Aim:AddSection("FOV")

local FOVToggle = Tabs.Aim:AddToggle("FOVEnabled", {
    Title       = "FOV Circle",
    Description = "Draw an FOV circle on your screen",
    Default     = false,
    Callback    = function() end
})

local FOVSizeSlider = Tabs.Aim:AddSlider("FOVSize", {
    Title       = "FOV Size",
    Description = "Radius of the FOV circle",
    Default     = 150,
    Min         = 50,
    Max         = 500,
    Rounding    = 0,
    Callback    = function() end
})

local SmoothnessSlider = Tabs.Aim:AddSlider("Smoothness", {
    Title       = "Smoothness",
    Description = "Higher = slower aim",
    Default     = 5,
    Min         = 1,
    Max         = 20,
    Rounding    = 0,
    Callback    = function() end
})

Tabs.Aim:AddSection("Advanced")

local AimPartDropdown = Tabs.Aim:AddDropdown("AimPart", {
    Title       = "Aim Part",
    Description = "Target body part to aim at",
    Values      = { "Head", "HumanoidRootPart" },
    Default     = 1,
    Callback    = function() end
})

-- =============================================
-- AIM SYSTEM
-- =============================================

local FOVCircle = Drawing.new("Circle")
FOVCircle.Visible      = false
FOVCircle.Thickness    = 1.5
FOVCircle.Color        = Color3.fromRGB(255, 255, 255)
FOVCircle.Filled       = false
FOVCircle.Transparency = 1

local AimKeyHeld = false
local AimKeyMap  = {
    ["E"]        = Enum.KeyCode.E,
    ["Q"]        = Enum.KeyCode.Q,
    ["F"]        = Enum.KeyCode.F,
    ["CapsLock"] = Enum.KeyCode.CapsLock,
}

local function IsSameTeam(player)
    if not TeamCheckToggle.Value then return false end
    local lt = LocalPlayer.Team
    local tt = player.Team
    if lt and tt then return lt == tt end
    local ltc = LocalPlayer.TeamColor
    local ttc = player.TeamColor
    if ltc and ttc then return ltc == ttc end
    pcall(function()
        local lChar = LocalPlayer.Character
        local tChar = player.Character
        if lChar and tChar then
            local lBC = lChar:FindFirstChildOfClass("BodyColors")
            local tBC = tChar:FindFirstChildOfClass("BodyColors")
            if lBC and tBC then
                if lBC.TorsoColor == tBC.TorsoColor then return true end
            end
        end
    end)
    return false
end

UserInputService.InputBegan:Connect(function(input, gpe)
    if gpe then return end
    local key = AimKeyDropdown.Value or "RMB (Right Click)"
    if key == "RMB (Right Click)" and input.UserInputType == Enum.UserInputType.MouseButton2 then
        AimKeyHeld = true
    elseif key == "LMB (Left Click)" and input.UserInputType == Enum.UserInputType.MouseButton1 then
        AimKeyHeld = true
    elseif key == "Always On" then
        AimKeyHeld = true
    else
        local kc = AimKeyMap[key]
        if kc and input.KeyCode == kc then AimKeyHeld = true end
    end
end)

UserInputService.InputEnded:Connect(function(input)
    local key = AimKeyDropdown.Value or "RMB (Right Click)"
    if key == "Always On" then return end
    if key == "RMB (Right Click)" and input.UserInputType == Enum.UserInputType.MouseButton2 then
        AimKeyHeld = false
    elseif key == "LMB (Left Click)" and input.UserInputType == Enum.UserInputType.MouseButton1 then
        AimKeyHeld = false
    else
        local kc = AimKeyMap[key]
        if kc and input.KeyCode == kc then AimKeyHeld = false end
    end
end)

local function GetClosestTarget(partOverride)
    local cam    = Camera
    local center = Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y / 2)
    local fov    = FOVSizeSlider.Value
    local part   = partOverride or AimPartDropdown.Value or "Head"
    local closest, minDist = nil, math.huge
    for _, plr in ipairs(Players:GetPlayers()) do
        if plr == LocalPlayer then continue end
        if IsSameTeam(plr) then continue end
        local char = plr.Character
        if not char then continue end
        local hum = char:FindFirstChildOfClass("Humanoid")
        local tp  = char:FindFirstChild(part)
        if not hum or not tp then continue end
        if hum.Health <= 0 then continue end
        local vp, visible = cam:WorldToViewportPoint(tp.Position)
        if not visible then continue end
        local dist = (Vector2.new(vp.X, vp.Y) - center).Magnitude
        if dist < fov and dist < minDist then
            minDist = dist
            closest = tp
        end
    end
    return closest
end

-- Silent Aim
RunService.RenderStepped:Connect(function()
    if not SilentAimToggle.Value then return end
    if not UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) then return end
    local target = GetClosestTarget(AimPartDropdown.Value or "Head")
    if not target then return end
    pcall(function()
        local mouse = LocalPlayer:GetMouse()
        mouse.Hit    = CFrame.new(target.Position)
        mouse.Target = target
    end)
end)

-- Main Aimbot Loop
RunService.RenderStepped:Connect(function()
    local cam    = Camera
    local center = Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y / 2)

    FOVCircle.Visible = FOVToggle.Value
    if FOVToggle.Value then
        FOVCircle.Radius   = FOVSizeSlider.Value
        FOVCircle.Position = center
    end

    if not AimbotToggle.Value then
        if cam.CameraType == Enum.CameraType.Scriptable then
            cam.CameraType = Enum.CameraType.Custom
        end
        return
    end

    local aimKey   = AimKeyDropdown.Value or "RMB (Right Click)"
    local isMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled
    if not isMobile and aimKey ~= "Always On" and not AimKeyHeld then return end

    local target = GetClosestTarget()
    if not target then return end

    local smooth   = math.clamp(SmoothnessSlider.Value, 1, 20)
    local alpha    = 1 / smooth
    local targetCF = CFrame.new(cam.CFrame.Position, target.Position)
    cam.CameraType = Enum.CameraType.Scriptable
    cam.CFrame     = cam.CFrame:Lerp(targetCF, alpha)
    task.defer(function()
        if AimbotToggle.Value then cam.CameraType = Enum.CameraType.Custom end
    end)
end)

-- =============================================
-- ESP / CHAMS
-- =============================================

local ESPColor     = Color3.fromRGB(255, 50, 50)
local ESPObjects   = {}
local ChamsObjects = {}

local function CreateESP(player)
    if player == LocalPlayer then return end
    if ESPObjects[player] then return end
    ESPObjects[player] = {
        Box        = Drawing.new("Square"),
        Name       = Drawing.new("Text"),
        HealthBG   = Drawing.new("Square"),
        HealthFill = Drawing.new("Square"),
        Tracer     = Drawing.new("Line"),
        Distance   = Drawing.new("Text"),
        HeadDot    = Drawing.new("Circle"),
    }
    local o = ESPObjects[player]
    o.Box.Visible        = false; o.Box.Color        = ESPColor; o.Box.Thickness  = 1.5;  o.Box.Filled       = false
    o.Name.Visible       = false; o.Name.Color       = Color3.fromRGB(255,255,255)
    o.Name.Size          = 13;    o.Name.Center      = true; o.Name.Outline = true; o.Name.Font = Drawing.Fonts.UI
    o.HealthBG.Visible   = false; o.HealthBG.Color   = Color3.fromRGB(30,30,30);   o.HealthBG.Filled   = true; o.HealthBG.Thickness   = 1
    o.HealthFill.Visible = false; o.HealthFill.Color = Color3.fromRGB(0,255,100);  o.HealthFill.Filled = true; o.HealthFill.Thickness = 1
    o.Tracer.Visible     = false; o.Tracer.Color     = ESPColor; o.Tracer.Thickness = 1
    o.Distance.Visible   = false; o.Distance.Color   = Color3.fromRGB(255,255,255)
    o.Distance.Size      = 12;    o.Distance.Center  = true; o.Distance.Outline = true; o.Distance.Font = Drawing.Fonts.UI
    o.HeadDot.Visible      = false; o.HeadDot.Color     = ESPColor
    o.HeadDot.Filled       = true;  o.HeadDot.Radius    = 4
    o.HeadDot.Transparency = 1;     o.HeadDot.Thickness = 1
end

local function RemoveESP(player)
    if ESPObjects[player] then
        for _, d in pairs(ESPObjects[player]) do pcall(function() d:Remove() end) end
        ESPObjects[player] = nil
    end
end

local function HideESP(player)
    if ESPObjects[player] then
        for _, d in pairs(ESPObjects[player]) do d.Visible = false end
    end
end

local function RemoveChams(player)
    if ChamsObjects[player] then
        pcall(function() ChamsObjects[player]:Destroy() end)
        ChamsObjects[player] = nil
    end
end

local function ApplyChams(player)
    local char = player.Character
    if not char then return end
    RemoveChams(player)
    local hl = Instance.new("Highlight")
    hl.Adornee             = char
    hl.FillTransparency    = 0.5
    hl.OutlineTransparency = 0
    hl.DepthMode           = Enum.HighlightDepthMode.AlwaysOnTop
    hl.FillColor           = ESPColor
    hl.OutlineColor        = ESPColor
    pcall(function() hl.Parent = game:GetService("CoreGui") end)
    if not hl.Parent then hl.Parent = char end
    ChamsObjects[player] = hl
end

for _, p in pairs(Players:GetPlayers()) do CreateESP(p) end
Players.PlayerAdded:Connect(function(p)
    CreateESP(p)
    p.CharacterAdded:Connect(function() task.wait(0.5); CreateESP(p) end)
end)
Players.PlayerRemoving:Connect(function(p) RemoveESP(p); RemoveChams(p) end)

-- =============================================
-- VISUAL TAB
-- =============================================

Tabs.Visual:AddSection("ESP")

local ESPToggle = Tabs.Visual:AddToggle("ESPEnabled", {
    Title = "ESP Enabled", Description = "Master toggle for all ESP",
    Default = false, Callback = function() end
})

local BoxESPToggle = Tabs.Visual:AddToggle("BoxESP", {
    Title = "Box ESP", Description = "Draw boxes around players",
    Default = false, Callback = function() end
})

local NameESPToggle = Tabs.Visual:AddToggle("NameESP", {
    Title = "Name ESP", Description = "Display player names",
    Default = false, Callback = function() end
})

local HealthBarToggle = Tabs.Visual:AddToggle("HealthBarESP", {
    Title = "Health Bar", Description = "Show health bars",
    Default = false, Callback = function() end
})

local TracerToggle = Tabs.Visual:AddToggle("TracerESP", {
    Title = "Tracers", Description = "Draw lines from bottom center to players",
    Default = false, Callback = function() end
})

local DistanceToggle = Tabs.Visual:AddToggle("DistanceESP", {
    Title = "Distance", Description = "Show distance in studs",
    Default = false, Callback = function() end
})

local HeadDotToggle = Tabs.Visual:AddToggle("HeadDotESP", {
    Title = "Head Dot", Description = "Draw dot on player heads",
    Default = false, Callback = function() end
})

local ChamsToggle = Tabs.Visual:AddToggle("Chams", {
    Title = "Chams", Description = "Highlight players through walls",
    Default = false,
    Callback = function(v)
        if not v then
            for _, p in pairs(Players:GetPlayers()) do RemoveChams(p) end
        end
    end
})

Tabs.Visual:AddColorpicker("ESPColor", {
    Title = "ESP Color", Description = "Color for ESP/Chams",
    Default = Color3.fromRGB(255, 50, 50),
    Callback = function(v)
        ESPColor = v
        for _, o in pairs(ESPObjects) do
            if o.Box     then o.Box.Color     = v end
            if o.Tracer  then o.Tracer.Color  = v end
            if o.HeadDot then o.HeadDot.Color = v end
        end
        for _, p in pairs(Players:GetPlayers()) do
            if ChamsObjects[p] then
                ChamsObjects[p].FillColor    = v
                ChamsObjects[p].OutlineColor = v
            end
        end
    end
})

Tabs.Visual:AddSection("Camera")

local FullBrightToggle = Tabs.Visual:AddToggle("FullBright", {
    Title = "Full Bright", Description = "Makes the game fully lit",
    Default = false, Callback = function() end
})

Tabs.Visual:AddSlider("FOVChanger", {
    Title = "Field of View", Description = "Change camera FOV",
    Default = 70, Min = 30, Max = 120, Rounding = 0,
    Callback = function(v) workspace.CurrentCamera.FieldOfView = v end
})

-- =============================================
-- ESP RENDER LOOP
-- =============================================

RunService.RenderStepped:Connect(function()
    local espOn    = ESPToggle.Value
    local boxOn    = BoxESPToggle.Value
    local nameOn   = NameESPToggle.Value
    local hpOn     = HealthBarToggle.Value
    local tracerOn = TracerToggle.Value
    local distOn   = DistanceToggle.Value
    local dotOn    = HeadDotToggle.Value
    local cam      = Camera

    for _, plr in pairs(Players:GetPlayers()) do
        if plr == LocalPlayer then continue end
        local o = ESPObjects[plr]
        if not o then continue end
        local char = plr.Character
        local hum  = char and char:FindFirstChildOfClass("Humanoid")
        local root = char and char:FindFirstChild("HumanoidRootPart")
        local head = char and char:FindFirstChild("Head")
        if not espOn or not char or not hum or not root or not head or hum.Health <= 0 then
            HideESP(plr); continue
        end
        local rootVP, onScreen = cam:WorldToViewportPoint(root.Position)
        if not onScreen then HideESP(plr) continue end
        local headVP = cam:WorldToViewportPoint(head.Position + Vector3.new(0, 0.6, 0))
        local feetVP = cam:WorldToViewportPoint(root.Position - Vector3.new(0, 3.2, 0))
        local bH = math.abs(headVP.Y - feetVP.Y)
        local bW = bH * 0.55
        local bX = rootVP.X - bW / 2
        local bY = headVP.Y

        o.Box.Visible = boxOn
        if boxOn then o.Box.Position = Vector2.new(bX, bY); o.Box.Size = Vector2.new(bW, bH); o.Box.Color = ESPColor end

        o.Name.Visible = nameOn
        if nameOn then o.Name.Position = Vector2.new(rootVP.X, bY - 18); o.Name.Text = plr.DisplayName end

        local hpPct = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
        o.HealthBG.Visible = hpOn; o.HealthFill.Visible = hpOn
        if hpOn then
            local hbX = bX - 6
            o.HealthBG.Position   = Vector2.new(hbX, bY); o.HealthBG.Size = Vector2.new(4, bH)
            o.HealthFill.Position = Vector2.new(hbX, bY + bH * (1 - hpPct)); o.HealthFill.Size = Vector2.new(4, bH * hpPct)
            o.HealthFill.Color    = Color3.fromRGB(255 * (1 - hpPct), 255 * hpPct, 0)
        end

        o.Tracer.Visible = tracerOn
        if tracerOn then o.Tracer.From = Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y); o.Tracer.To = Vector2.new(rootVP.X, rootVP.Y); o.Tracer.Color = ESPColor end

        local dist = math.floor((root.Position - cam.CFrame.Position).Magnitude)
        o.Distance.Visible = distOn
        if distOn then o.Distance.Position = Vector2.new(rootVP.X, feetVP.Y + 4); o.Distance.Text = dist .. " studs" end

        o.HeadDot.Visible = dotOn
        if dotOn then o.HeadDot.Position = Vector2.new(headVP.X, headVP.Y); o.HeadDot.Color = ESPColor end
    end
end)

-- =============================================
-- CHAMS LOOP
-- =============================================

RunService.Heartbeat:Connect(function()
    for _, plr in pairs(Players:GetPlayers()) do
        if plr == LocalPlayer then continue end
        local char = plr.Character
        if not char then RemoveChams(plr) continue end
        if ChamsToggle.Value and ESPToggle.Value then
            local hl = ChamsObjects[plr]
            if not hl or not hl.Parent or hl.Adornee ~= char then ApplyChams(plr); hl = ChamsObjects[plr] end
            if hl then hl.FillColor = ESPColor; hl.OutlineColor = ESPColor end
        else
            RemoveChams(plr)
        end
    end
end)

-- =============================================
-- FULLBRIGHT
-- =============================================

local origBrightness = Lighting.Brightness
local origGlobalShad = Lighting.GlobalShadows
local origAmbient    = Lighting.Ambient
local origOutdoor    = Lighting.OutdoorAmbient
local origClockTime  = Lighting.ClockTime
local fbApplied      = false

RunService.Heartbeat:Connect(function()
    if FullBrightToggle.Value then
        if not fbApplied then
            fbApplied = true
            pcall(function() Lighting.Brightness = 10 end)
            pcall(function() Lighting.ClockTime = 14 end)
            pcall(function() Lighting.GlobalShadows = false end)
            pcall(function() Lighting.Ambient = Color3.fromRGB(178,178,178) end)
            pcall(function() Lighting.OutdoorAmbient = Color3.fromRGB(178,178,178) end)
            for _, v in pairs(Lighting:GetChildren()) do
                pcall(function()
                    if v:IsA("Atmosphere") then v.Density=0; v.Glare=0; v.Haze=0 end
                    if v:IsA("BlurEffect") or v:IsA("ColorCorrectionEffect") or v:IsA("SunRaysEffect") then v.Enabled = false end
                end)
            end
        end
    else
        if fbApplied then
            fbApplied = false
            pcall(function() Lighting.Brightness = origBrightness end)
            pcall(function() Lighting.ClockTime = origClockTime end)
            pcall(function() Lighting.GlobalShadows = origGlobalShad end)
            pcall(function() Lighting.Ambient = origAmbient end)
            pcall(function() Lighting.OutdoorAmbient = origOutdoor end)
            for _, v in pairs(Lighting:GetChildren()) do
                pcall(function()
                    if v:IsA("BlurEffect") or v:IsA("ColorCorrectionEffect") or v:IsA("SunRaysEffect") then v.Enabled = true end
                end)
            end
        end
    end
end)

-- =============================================
-- MISC TAB
-- =============================================

Tabs.Misc:AddSection("Movement")

Tabs.Misc:AddSlider("GravityValue", {
    Title = "Gravity", Description = "Set workspace gravity",
    Default = 196, Min = 0, Max = 500, Rounding = 0,
    Callback = function(v) workspace.Gravity = v end
})

Tabs.Misc:AddSlider("SpeedValue", {
    Title = "Walk Speed", Description = "Set your walk speed",
    Default = 16, Min = 0, Max = 200, Rounding = 0,
    Callback = function(v)
        pcall(function()
            local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
            if hum then hum.WalkSpeed = v end
        end)
    end
})

local JumpSlider = Tabs.Misc:AddSlider("JumpValue", {
    Title = "Jump Power", Description = "Set your jump power",
    Default = 50, Min = 0, Max = 300, Rounding = 0,
    Callback = function(v)
        pcall(function()
            local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
            if hum then hum.JumpPower = v; hum.JumpHeight = v * 0.2 end
        end)
    end
})

RunService.Heartbeat:Connect(function()
    pcall(function()
        local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
        if hum and JumpSlider.Value ~= 50 then
            hum.JumpPower  = JumpSlider.Value
            hum.JumpHeight = JumpSlider.Value * 0.2
        end
    end)
end)

local InfiniteJumpToggle = Tabs.Misc:AddToggle("InfiniteJump", {
    Title = "Infinite Jump", Description = "Jump while in the air",
    Default = false, Callback = function() end
})

local NoClipToggle = Tabs.Misc:AddToggle("NoClip", {
    Title = "NoClip", Description = "Walk through walls",
    Default = false, Callback = function() end
})

local FlyToggle = Tabs.Misc:AddToggle("FlyEnabled", {
    Title = "Fly", Description = "Fly around freely",
    Default = false,
    Callback = function(v)
        pcall(function()
            local char = LocalPlayer.Character
            if not char then return end
            local hum = char:FindFirstChildOfClass("Humanoid")
            local hrp = char:FindFirstChild("HumanoidRootPart")
            if not hum or not hrp then return end
            if v then
                hum.PlatformStand = true
                local bg = Instance.new("BodyGyro");     bg.Name = "FlyGyro"
                bg.MaxTorque = Vector3.new(1e9,1e9,1e9); bg.D = 50; bg.Parent = hrp
                local bv = Instance.new("BodyVelocity"); bv.Name = "FlyVelocity"
                bv.MaxForce = Vector3.new(1e9,1e9,1e9);  bv.Velocity = Vector3.zero; bv.Parent = hrp
            else
                hum.PlatformStand = false
                local bg = hrp:FindFirstChild("FlyGyro");     if bg then bg:Destroy() end
                local bv = hrp:FindFirstChild("FlyVelocity"); if bv then bv:Destroy() end
            end
        end)
    end
})

local FlySpeedSlider = Tabs.Misc:AddSlider("FlySpeed", {
    Title = "Fly Speed", Description = "Speed while flying",
    Default = 50, Min = 10, Max = 300, Rounding = 0,
    Callback = function() end
})

Tabs.Misc:AddSection("Player")

local AntiAFKToggle = Tabs.Misc:AddToggle("AntiAFK", {
    Title   = "Anti AFK",
    Description = "Prevent AFK kick with enhanced bypass",
    Default = false,
    Callback = function() end
})

Tabs.Misc:AddSection("Teleport")

local TpInput = Tabs.Misc:AddInput("TpUsername", {
    Title = "Username", Description = "Player to teleport to",
    Default = "", Placeholder = "Enter username...",
    Callback = function() end
})

Tabs.Misc:AddButton({
    Title = "Teleport to Player", Description = "Teleport to the entered username",
    Callback = function()
        local name = TpInput.Value
        if name == "" then Fluent:Notify({ Title = "Teleport", Content = "Enter a username!", Duration = 3 }) return end
        local target
        for _, p in pairs(Players:GetPlayers()) do
            if p.Name:lower():find(name:lower()) then target = p break end
        end
        if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
            local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
            if hrp then
                hrp.CFrame = target.Character.HumanoidRootPart.CFrame + Vector3.new(0, 3, 0)
                Fluent:Notify({ Title = "Teleport", Content = "Teleported to " .. target.Name, Duration = 3 })
            end
        else
            Fluent:Notify({ Title = "Teleport", Content = "Player not found: " .. name, Duration = 3 })
        end
    end
})

Tabs.Misc:AddSection("Server")

Tabs.Misc:AddButton({
    Title = "Rejoin", Description = "Rejoin the current game",
    Callback = function()
        Fluent:Notify({ Title = "Rejoin", Content = "Rejoining...", Duration = 3 })
        task.wait(1)
        pcall(function() TeleportService:Teleport(game.PlaceId, LocalPlayer) end)
    end
})

Tabs.Misc:AddButton({
    Title = "Server Hop", Description = "Jump to a different server",
    Callback = function()
        Fluent:Notify({ Title = "Server Hop", Content = "Finding server...", Duration = 3 })
        task.spawn(function()
            local ok, res = pcall(function()
                return HttpService:JSONDecode(game:HttpGet(
                    "https://games.roblox.com/v1/games/" .. game.PlaceId .. "/servers/Public?sortOrder=Asc&limit=100"
                ))
            end)
            if ok and res and res.data then
                local list = {}
                for _, s in pairs(res.data) do
                    if s.id ~= game.JobId and s.playing < s.maxPlayers then table.insert(list, s.id) end
                end
                if #list > 0 then
                    local picked = list[math.random(1, #list)]
                    Fluent:Notify({ Title = "Server Hop", Content = "Hopping!", Duration = 2 })
                    task.wait(1)
                    TeleportService:TeleportToPlaceInstance(game.PlaceId, picked, LocalPlayer)
                    return
                end
            end
            TeleportService:Teleport(game.PlaceId, LocalPlayer)
        end)
    end
})

Tabs.Misc:AddButton({
    Title = "Copy Game Link", Description = "Copy game link to clipboard",
    Callback = function()
        local link = "https://www.roblox.com/games/" .. game.PlaceId .. "?gameInstanceId=" .. game.JobId
        pcall(function() setclipboard(link) end)
        Fluent:Notify({ Title = "Copied!", Content = "Game link copied.", Duration = 3 })
    end
})

Tabs.Misc:AddSection("Chat")

local ChatSpamToggle = Tabs.Misc:AddToggle("ChatSpam", {
    Title = "Chat Spam", Description = "Spam a message in chat",
    Default = false, Callback = function() end
})

local ChatMsgInput = Tabs.Misc:AddInput("ChatMsg", {
    Title = "Message", Description = "Message to spam",
    Default = "", Placeholder = "Enter message...",
    Callback = function() end
})

local ChatDelaySlider = Tabs.Misc:AddSlider("ChatDelay", {
    Title = "Delay (seconds)", Description = "Time between each message",
    Default = 3, Min = 1, Max = 30, Rounding = 0,
    Callback = function() end
})

-- =============================================
-- SCRIPT HUB TAB
-- =============================================

Tabs.ScriptHub:AddButton({
    Title       = "Infinite Yield",
    Description = "Load Infinite Yield FE admin commands",
    Callback    = function()
        Fluent:Notify({ Title = "Script Hub", Content = "Loading Infinite Yield...", Duration = 3 })
        pcall(function()
            loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))()
        end)
    end
})

Tabs.ScriptHub:AddButton({
    Title       = "Dex Explorer",
    Description = "Inspect the game's full instance tree",
    Callback    = function()
        Fluent:Notify({ Title = "Script Hub", Content = "Loading Dex Explorer...", Duration = 3 })
        pcall(function()
            loadstring(game:HttpGet("https://rawscripts.net/raw/Universal-Script-latest-working-dex-explorer-93991"))()
        end)
    end
})

Tabs.ScriptHub:AddButton({
    Title       = "Sirius",
    Description = "Load Sirius multi-game script hub",
    Callback    = function()
        Fluent:Notify({ Title = "Script Hub", Content = "Loading Sirius...", Duration = 3 })
        pcall(function()
            loadstring(game:HttpGet("https://sirius.menu/sirius"))()
        end)
    end
})

Tabs.ScriptHub:AddButton({
    Title       = "Remote Spy",
    Description = "Load Remote Spy inside SimpleSpy",
    Callback    = function()
        Fluent:Notify({ Title = "Script Hub", Content = "Loading Remote Spy...", Duration = 3 })
        pcall(function()
            loadstring(game:HttpGet("https://raw.githubusercontent.com/exxtremestuffs/SimpleSpySource/master/SimpleSpy.lua"))()
        end)
    end
})

-- =============================================
-- SETTING TAB
-- =============================================

InterfaceManager:SetLibrary(Fluent)
InterfaceManager:BuildInterfaceSection(Tabs.Setting)

-- =============================================
-- RUNTIME LOGIC
-- =============================================

UserInputService.JumpRequest:Connect(function()
    if InfiniteJumpToggle.Value then
        pcall(function()
            LocalPlayer.Character:FindFirstChildOfClass("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping)
        end)
    end
end)

RunService.Stepped:Connect(function()
    if NoClipToggle.Value then
        pcall(function()
            for _, v in pairs(LocalPlayer.Character:GetDescendants()) do
                if v:IsA("BasePart") then v.CanCollide = false end
            end
        end)
    end
end)

RunService.RenderStepped:Connect(function()
    if not FlyToggle.Value then return end
    pcall(function()
        local char = LocalPlayer.Character
        if not char then return end
        local hrp  = char:FindFirstChild("HumanoidRootPart")
        local hum  = char:FindFirstChildOfClass("Humanoid")
        local bv   = hrp and hrp:FindFirstChild("FlyVelocity")
        local bg   = hrp and hrp:FindFirstChild("FlyGyro")
        if not bv or not bg or not hum then return end
        local cam    = workspace.CurrentCamera
        local speed  = FlySpeedSlider.Value
        local look   = cam.CFrame.LookVector
        local right  = cam.CFrame.RightVector
        local dir    = Vector3.zero
        local mobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled
        if mobile then
            local md = hum.MoveDirection
            if md.Magnitude > 0.1 then
                local fl = Vector3.new(look.X,0,look.Z); local fr = Vector3.new(right.X,0,right.Z)
                if fl.Magnitude > 0 then fl = fl.Unit end; if fr.Magnitude > 0 then fr = fr.Unit end
                dir = look * fl:Dot(md) + right * fr:Dot(md)
            end
        else
            if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + look  end
            if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - look  end
            if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - right end
            if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + right end
        end
        bv.Velocity = dir.Magnitude > 0 and dir.Unit * speed or Vector3.zero
        bg.CFrame   = cam.CFrame
    end)
end)

-- =============================================
-- ANTI AFK
-- =============================================

task.spawn(function()

    local method = 0

    while true do
        task.wait(20) -- fire every 20 seconds (more aggressive than default 55s)
        if not AntiAFKToggle.Value then continue end

        method = (method % 4) + 1

        pcall(function()
            if method == 1 then
                -- VirtualUser mouse click simulation
                VirtualUser:Button2Down(Vector2.new(0, 0), Camera.CFrame)
                task.wait(0.1)
                VirtualUser:Button2Up(Vector2.new(0, 0), Camera.CFrame)

            elseif method == 2 then
                -- Simulate a tiny walk nudge
                VirtualUser:Button1Down(Vector2.new(0, 0), Camera.CFrame)
                task.wait(0.05)
                VirtualUser:Button1Up(Vector2.new(0, 0), Camera.CFrame)

            elseif method == 3 then
                -- Simulate jump input
                local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
                if hum then
                    hum:ChangeState(Enum.HumanoidStateType.Jumping)
                end

            elseif method == 4 then
                -- Touch screen tap simulation (works on all platforms)
                VirtualUser:TouchTap(Vector2.new(
                    Camera.ViewportSize.X / 2,
                    Camera.ViewportSize.Y / 2
                ), Camera.CFrame)
            end
        end)
    end
end)

pcall(function()
    LocalPlayer.Idled:Connect(function()
        if AntiAFKToggle.Value then
            VirtualUser:Button2Down(Vector2.new(0,0), Camera.CFrame)
            task.wait(0.1)
            VirtualUser:Button2Up(Vector2.new(0,0), Camera.CFrame)
        end
    end)
end)

task.spawn(function()
    while true do
        task.wait(1)
        if not ChatSpamToggle.Value then continue end
        local msg = ChatMsgInput.Value or ""
        if msg == "" then continue end
        pcall(function()
            local tcs = game:GetService("TextChatService")
            if tcs and tcs.ChatVersion == Enum.ChatVersion.TextChatService then
                local ch = tcs.TextChannels:FindFirstChild("RBXGeneral") or tcs.TextChannels:FindFirstChildOfClass("TextChannel")
                if ch then ch:SendAsync(msg) return end
            end
            local rs = game:GetService("ReplicatedStorage")
            local ev = rs:FindFirstChild("DefaultChatSystemChatEvents")
            if ev then local say = ev:FindFirstChild("SayMessageRequest"); if say then say:FireServer(msg, "All") end end
        end)
        task.wait(math.max(1, ChatDelaySlider.Value - 1))
    end
end)

-- =============================================
-- INIT
-- =============================================

Window:SelectTab(1)

Fluent:Notify({
    Title    = "Welcome to Software Hub",
    Content  = "Loaded successfully!",
    Duration = 5
})

print("========================================")
print("   © 2026 Software Hub | by Software   ")
print("        All Rights Reserved             ")
print("========================================")
print("")
print("[ AIM FEATURES ]")
print("  ✓ Aimbot Enable")
print("  ✓ Aim Key")
print("  ✓ Silent Aimbot")
print("  ✓ Team Check")
print("  ✓ FOV Circle + FOV Size")
print("  ✓ Smoothness")
print("  ✓ Aim Part Selector")
print("")
print("[ VISUAL FEATURES ]")
print("  ✓ ESP Master Toggle")
print("  ✓ Box ESP")
print("  ✓ Name ESP")
print("  ✓ Health Bar")
print("  ✓ Tracers")
print("  ✓ Distance")
print("  ✓ Head Dot")
print("  ✓ Chams (requires ESP)")
print("  ✓ ESP Color Picker")
print("  ✓ Full Bright")
print("  ✓ FOV Changer")
print("")
print("[ MISC FEATURES ]")
print("  ✓ Gravity Control")
print("  ✓ Walk Speed (0-200)")
print("  ✓ Jump Power (0-300)")
print("  ✓ Infinite Jump")
print("  ✓ NoClip")
print("  ✓ Fly + Fly Speed")
print("  ✓ Anti AFK (Upgraded - 4 bypass methods)")
print("  ✓ Teleport to Player")
print("  ✓ Rejoin")
print("  ✓ Server Hop")
print("  ✓ Copy Game Link")
print("  ✓ Chat Spam")
print("")
print("[ SCRIPT HUB ]")
print("  ✓ Infinite Yield")
print("  ✓ Dex Explorer")
print("  ✓ Sirius")
print("")
print("[ SETTING ]")
print("  ✓ Interface Manager (Theme, Acrylic, Transparency, Keybind)")
print("")
print("========================================")

Features & Information

- ESP - Aimbot - Walkspeed - Jumppower - Infinite Jump - Noclip - and More!
#Software Hub#Admin#Keyless#Script#Free

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts