-- [[ 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 ]] --========================================================-- -- VECTOR HUB: SOCCER EDITION (OPTIMIZED) -- --========================================================-- local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local VirtualInputManager = game:GetService("VirtualInputManager") local TextChatService = game:GetService("TextChatService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer ------------------------------------------------------------ -- HUB CONFIGURATION & STATES ------------------------------------------------------------ local Config = { -- Visuals PlayerESP = false, TeamESP = false, NameTags = false, ChamsMode = false, HighlightColor = Color3.fromRGB(255, 65, 84), TeamColor = Color3.fromRGB(46, 204, 113), NameTagColor = Color3.fromRGB(255, 255, 255), -- Gameplay SpeedBoost = false, WalkSpeedValue = 24, AutoSprint = false, -- Auto Chat on Goal AutoGoalChat = false, GoalChatMessage = "GOAAAL! ⚽🔥", -- Player Hitbox HitboxExpansion = false, HitboxSize = 6, HitboxHeight = 4, HitboxBoxColor = Color3.fromRGB(0, 229, 255), -- Goal Hitbox GoalHitboxExpansion = false, GoalHitboxSize = 25, -- Auto Join & Auto Team AutoJoin = false, SelectedTeam = "Red", -- Options: "Red", "Blue", "Home", "Away" SelectedPosition = "CF" -- Options: "GK", "CB", "CM", "CF", "LW", "RW" } local Highlights = {} local NameTags = {} local OriginalSizes = {} local CustomHitboxPart = nil local PlayerHitboxBox = nil local PlayerHitboxWire = nil local LastGoalChatTime = 0 local LastAutoJoinAttempt = 0 ------------------------------------------------------------ -- HELPER & CHAT FUNCTIONS ------------------------------------------------------------ local function SendPublicChatMessage(msg) task.spawn(function() pcall(function() if TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then local textChannel = TextChatService.TextChannels:FindFirstChild("RBXGeneral") if textChannel then textChannel:SendAsync(msg) end else local defaultChat = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") if defaultChat then local sayMsg = defaultChat:FindFirstChild("SayMessageRequest") if sayMsg then sayMsg:FireServer(msg, "All") end end end end) end) end local function ClearPlayerVisuals(player) if Highlights[player] then pcall(function() Highlights[player]:Destroy() end) Highlights[player] = nil end if NameTags[player] then pcall(function() NameTags[player]:Destroy() end) NameTags[player] = nil end end Players.PlayerRemoving:Connect(ClearPlayerVisuals) ------------------------------------------------------------ -- AUTO JOIN ENGINE ------------------------------------------------------------ local function AttemptAutoJoin() if not Config.AutoJoin or (tick() - LastAutoJoinAttempt < 1) then return end -- Stop attempting if player is already assigned to a team if LocalPlayer.Team and LocalPlayer.Team.Name ~= "Choosing" and LocalPlayer.Team.Name ~= "Spectator" and LocalPlayer.Team.Name ~= "Spectators" then return end LastAutoJoinAttempt = tick() task.spawn(function() pcall(function() -- Method 1: RemoteEvent / RemoteFunction Triggers for _, v in ipairs(ReplicatedStorage:GetDescendants()) do if v:IsA("RemoteEvent") or v:IsA("RemoteFunction") then local name = v.Name:lower() if name:find("join") or name:find("selectteam") or name:find("team") or name:find("position") or name:find("role") then if v:IsA("RemoteEvent") then v:FireServer(Config.SelectedTeam, Config.SelectedPosition) v:FireServer(Config.SelectedTeam) v:FireServer(Config.SelectedPosition) end end end end -- Method 2: UI Button Clicks local playerGui = LocalPlayer:FindFirstChild("PlayerGui") if playerGui then for _, guiObj in ipairs(playerGui:GetDescendants()) do if guiObj:IsA("TextButton") or guiObj:IsA("ImageButton") then local btnName = guiObj.Name:lower() local btnText = (guiObj:IsA("TextButton") and guiObj.Text:lower()) or "" local matchesTeam = btnName:find(Config.SelectedTeam:lower()) or btnText:find(Config.SelectedTeam:lower()) local matchesPos = btnName:find(Config.SelectedPosition:lower()) or btnText:find(Config.SelectedPosition:lower()) if matchesTeam or matchesPos then -- Fire virtual click safely if guiObj.Visible then for _, conn in ipairs(getconnections(guiObj.MouseButton1Click)) do conn:Fire() end for _, conn in ipairs(getconnections(guiObj.Activated)) do conn:Fire() end end end end end end end) end) end ------------------------------------------------------------ -- HITBOX & GOAL DETECTION ENGINE ------------------------------------------------------------ local function RemoveCustomHitbox() if CustomHitboxPart then pcall(function() CustomHitboxPart:Destroy() end) CustomHitboxPart = nil end if PlayerHitboxBox then pcall(function() PlayerHitboxBox:Destroy() end) PlayerHitboxBox = nil end if PlayerHitboxWire then pcall(function() PlayerHitboxWire:Destroy() end) PlayerHitboxWire = nil end local char = LocalPlayer.Character if char then for part, origSize in pairs(OriginalSizes) do if part and part.Parent then part.Size = origSize end end end table.clear(OriginalSizes) end local function ApplyPlayerHitbox() local char = LocalPlayer.Character if not char or not char:IsDescendantOf(Workspace) then return end local root = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChildOfClass("Humanoid") if not root or not hum or not root:IsA("BasePart") then return end if not Config.HitboxExpansion then RemoveCustomHitbox() return end local heightExtra = math.clamp(Config.HitboxHeight, 2, 20) local boxSize = Vector3.new(Config.HitboxSize, heightExtra, Config.HitboxSize) for _, part in ipairs(char:GetChildren()) do if part:IsA("BasePart") and part ~= root then local lowerName = string.lower(part.Name) if string.find(lowerName, "tackle") or string.find(lowerName, "reach") or string.find(lowerName, "slide") then if not OriginalSizes[part] then OriginalSizes[part] = part.Size end part.Size = boxSize part.CanCollide = false part.CanQuery = false part.CanTouch = true part.Massless = true end end end if not PlayerHitboxBox or PlayerHitboxBox.Parent ~= root then if PlayerHitboxBox then pcall(function() PlayerHitboxBox:Destroy() end) end if PlayerHitboxWire then pcall(function() PlayerHitboxWire:Destroy() end) end PlayerHitboxBox = Instance.new("BoxHandleAdornment") PlayerHitboxBox.Name = "VectorHub_HitboxFill" PlayerHitboxBox.Color3 = Config.HitboxBoxColor PlayerHitboxBox.Transparency = 0.85 PlayerHitboxBox.AlwaysOnTop = false PlayerHitboxBox.ZIndex = 1 PlayerHitboxBox.Adornee = root PlayerHitboxBox.Parent = root PlayerHitboxWire = Instance.new("SelectionBox") PlayerHitboxWire.Name = "VectorHub_HitboxOutline" PlayerHitboxWire.Color3 = Config.HitboxBoxColor PlayerHitboxWire.LineThickness = 0.03 PlayerHitboxWire.SurfaceTransparency = 1 PlayerHitboxWire.Adornee = root PlayerHitboxWire.Parent = root end if PlayerHitboxBox then PlayerHitboxBox.Size = boxSize PlayerHitboxBox.CFrame = CFrame.new(0, (heightExtra - 2) / 2, 0) end end local function ExpandGoalHitbox() for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("BasePart") and (obj.Name:lower():find("goal") or obj.Name:lower():find("net") or obj.Name:lower():find("detector")) then if Config.GoalHitboxExpansion then if not obj:FindFirstAttribute("OriginalGoalSize") then obj:SetAttribute("OriginalGoalSize", obj.Size) end obj.Size = Vector3.new(Config.GoalHitboxSize, Config.GoalHitboxSize, Config.GoalHitboxSize) obj.Transparency = 0.8 obj.CanCollide = false obj.CanQuery = false else if obj:GetAttribute("OriginalGoalSize") then obj.Size = obj:GetAttribute("OriginalGoalSize") obj.Transparency = 1 end end if not obj:GetAttribute("GoalListenerConnected") then obj:SetAttribute("GoalListenerConnected", true) obj.Touched:Connect(function(hit) if Config.AutoGoalChat and (tick() - LastGoalChatTime > 5) then if hit and hit.Name:lower():find("ball") then LastGoalChatTime = tick() SendPublicChatMessage(Config.GoalChatMessage) end end end) end end end end LocalPlayer.CharacterAdded:Connect(function() table.clear(OriginalSizes) PlayerHitboxBox = nil PlayerHitboxWire = nil CustomHitboxPart = nil end) ------------------------------------------------------------ -- OPTIMIZED LOOPS & VISUAL THREADS ------------------------------------------------------------ -- Light Task Loop for Game Logic and Auto-Join (Runs every 0.25s) task.spawn(function() while task.wait(0.25) do if Config.AutoJoin then AttemptAutoJoin() end local char = LocalPlayer.Character if char and char:IsDescendantOf(Workspace) then local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid then if Config.SpeedBoost then if humanoid.WalkSpeed ~= Config.WalkSpeedValue then humanoid.WalkSpeed = Config.WalkSpeedValue end end if Config.AutoSprint and humanoid.MoveDirection.Magnitude > 0 then VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.LeftShift, false, game) end end end end end) -- Lightweight Visuals Processing (Runs 10 times a second) task.spawn(function() while task.wait(0.1) do local localChar = LocalPlayer.Character local localRoot = localChar and localChar:FindFirstChild("HumanoidRootPart") for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer then local char = player.Character local root = char and char:FindFirstChild("HumanoidRootPart") local isTeammate = (player.Team == LocalPlayer.Team) and (LocalPlayer.Team ~= nil) if char and root and char:IsDescendantOf(Workspace) then local shouldShow = Config.PlayerESP or (Config.TeamESP and isTeammate) local espColor = isTeammate and Config.TeamColor or Config.HighlightColor if shouldShow then if not Highlights[player] or Highlights[player].Parent ~= char then if Highlights[player] then pcall(function() Highlights[player]:Destroy() end) end local hl = Instance.new("Highlight") hl.Name = "VectorHub_PlayerESP" hl.FillColor = espColor hl.OutlineColor = espColor hl.FillTransparency = Config.ChamsMode and 0.4 or 0.6 hl.DepthMode = Config.ChamsMode and Enum.HighlightDepthMode.AlwaysOnTop or Enum.HighlightDepthMode.Occluded hl.Parent = char Highlights[player] = hl else Highlights[player].FillColor = espColor Highlights[player].OutlineColor = espColor end else if Highlights[player] then pcall(function() Highlights[player]:Destroy() end) Highlights[player] = nil end end if Config.NameTags then local dist = localRoot and math.floor((root.Position - localRoot.Position).Magnitude) or 0 if not NameTags[player] or NameTags[player].Parent ~= root then if NameTags[player] then pcall(function() NameTags[player]:Destroy() end) end local bb = Instance.new("BillboardGui") bb.Name = "VectorHub_NameTag" bb.Size = UDim2.fromOffset(120, 30) bb.StudsOffset = Vector3.new(0, 3, 0) bb.AlwaysOnTop = true local txt = Instance.new("TextLabel") txt.Name = "TagLabel" txt.Size = UDim2.fromScale(1, 1) txt.BackgroundTransparency = 1 txt.TextColor3 = Config.NameTagColor txt.Font = Enum.Font.GothamBold txt.TextSize = 11 txt.Parent = bb bb.Parent = root NameTags[player] = bb end local label = NameTags[player]:FindFirstChild("TagLabel") if label then label.Text = string.format("%s [%dm]", player.DisplayName, dist) end else if NameTags[player] then pcall(function() NameTags[player]:Destroy() end) NameTags[player] = nil end end else ClearPlayerVisuals(player) end end end end end) ------------------------------------------------------------ -- UI CONSTRUCTION ------------------------------------------------------------ local GUI = Instance.new("ScreenGui") GUI.Name = "Vector Hub | Fifa Super Soccer V2" GUI.ResetOnSpawn = false GUI.IgnoreGuiInset = true GUI.Parent = LocalPlayer:WaitForChild("PlayerGui") local Main = Instance.new("Frame") Main.Name = "MainFrame" Main.Size = UDim2.fromOffset(520, 380) Main.Position = UDim2.new(0.5, -260, 0.5, -190) Main.BackgroundColor3 = Color3.fromRGB(13, 15, 20) Main.BorderSizePixel = 0 Main.ClipsDescendants = true Main.Parent = GUI Instance.new("UICorner", Main).CornerRadius = UDim.new(0, 12) local GlowOutline = Instance.new("UIStroke") GlowOutline.Color = Color3.fromRGB(0, 229, 255) GlowOutline.Transparency = 0.6 GlowOutline.Thickness = 1.2 GlowOutline.Parent = Main -- Top Bar local TopBar = Instance.new("Frame") TopBar.Name = "TopBar" TopBar.Size = UDim2.new(1, 0, 0, 48) TopBar.BackgroundColor3 = Color3.fromRGB(18, 21, 28) TopBar.BorderSizePixel = 0 TopBar.Parent = Main local HeaderDivider = Instance.new("Frame") HeaderDivider.Size = UDim2.new(1, 0, 0, 1) HeaderDivider.Position = UDim2.new(0, 0, 1, -1) HeaderDivider.BackgroundColor3 = Color3.fromRGB(30, 35, 48) HeaderDivider.BorderSizePixel = 0 HeaderDivider.Parent = TopBar local Logo = Instance.new("ImageLabel") Logo.Size = UDim2.fromOffset(26, 26) Logo.Position = UDim2.fromOffset(14, 11) Logo.BackgroundTransparency = 1 Logo.Image = "rbxassetid://13840243171" Logo.ImageColor3 = Color3.fromRGB(0, 229, 255) Logo.Parent = TopBar local Title = Instance.new("TextLabel") Title.Size = UDim2.new(0, 200, 1, 0) Title.Position = UDim2.fromOffset(48, 0) Title.BackgroundTransparency = 1 Title.Text = "Vector HUB | Fifa Super Soccer V2" Title.RichText = true Title.TextColor3 = Color3.fromRGB(240, 245, 255) Title.TextSize = 15 Title.Font = Enum.Font.GothamBold Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = TopBar -- Close Button local CloseBtn = Instance.new("TextButton") CloseBtn.Size = UDim2.fromOffset(28, 28) CloseBtn.Position = UDim2.new(1, -38, 0, 10) CloseBtn.BackgroundColor3 = Color3.fromRGB(25, 28, 38) CloseBtn.Text = "X" CloseBtn.TextColor3 = Color3.fromRGB(160, 170, 190) CloseBtn.Font = Enum.Font.GothamBold CloseBtn.TextSize = 13 CloseBtn.Parent = TopBar Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(0, 6) CloseBtn.MouseEnter:Connect(function() TweenService:Create(CloseBtn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(255, 60, 80), TextColor3 = Color3.fromRGB(255, 255, 255)}):Play() end) CloseBtn.MouseLeave:Connect(function() TweenService:Create(CloseBtn, TweenInfo.new(0.15), {BackgroundColor3 = Color3.fromRGB(25, 28, 38), TextColor3 = Color3.fromRGB(160, 170, 190)}):Play() end) CloseBtn.MouseButton1Click:Connect(function() GUI:Destroy() end) -- Sidebar Navigation local Sidebar = Instance.new("Frame") Sidebar.Size = UDim2.new(0, 130, 1, -48) Sidebar.Position = UDim2.fromOffset(0, 48) Sidebar.BackgroundColor3 = Color3.fromRGB(16, 18, 24) Sidebar.BorderSizePixel = 0 Sidebar.Parent = Main local SidebarList = Instance.new("UIListLayout") SidebarList.Padding = UDim.new(0, 6) SidebarList.HorizontalAlignment = Enum.HorizontalAlignment.Center SidebarList.SortOrder = Enum.SortOrder.LayoutOrder SidebarList.Parent = Sidebar local SidebarPadding = Instance.new("UIPadding") SidebarPadding.PaddingTop = UDim.new(0, 12) SidebarPadding.Parent = Sidebar local ContentArea = Instance.new("Frame") ContentArea.Size = UDim2.new(1, -142, 1, -60) ContentArea.Position = UDim2.fromOffset(136, 54) ContentArea.BackgroundTransparency = 1 ContentArea.Parent = Main local Tabs = {} local TabBtns = {} local function CreateTab(Name, LayoutOrder) local TabPage = Instance.new("ScrollingFrame") TabPage.Size = UDim2.new(1, 0, 1, 0) TabPage.BackgroundTransparency = 1 TabPage.BorderSizePixel = 0 TabPage.ScrollBarThickness = 2 TabPage.ScrollBarImageColor3 = Color3.fromRGB(0, 229, 255) TabPage.Visible = false TabPage.Parent = ContentArea local PageList = Instance.new("UIListLayout") PageList.Padding = UDim.new(0, 8) PageList.SortOrder = Enum.SortOrder.LayoutOrder PageList.Parent = TabPage local PagePadding = Instance.new("UIPadding") PagePadding.PaddingRight = UDim.new(0, 6) PagePadding.Parent = TabPage local NavBtn = Instance.new("TextButton") NavBtn.Size = UDim2.new(0, 110, 0, 34) NavBtn.BackgroundColor3 = Color3.fromRGB(22, 25, 34) NavBtn.Text = Name NavBtn.TextColor3 = Color3.fromRGB(130, 140, 160) NavBtn.Font = Enum.Font.GothamMedium NavBtn.TextSize = 12 NavBtn.LayoutOrder = LayoutOrder NavBtn.Parent = Sidebar Instance.new("UICorner", NavBtn).CornerRadius = UDim.new(0, 8) local BtnStroke = Instance.new("UIStroke") BtnStroke.Color = Color3.fromRGB(0, 229, 255) BtnStroke.Transparency = 1 BtnStroke.Thickness = 1 BtnStroke.Parent = NavBtn NavBtn.MouseButton1Click:Connect(function() for _, page in pairs(Tabs) do page.Visible = false end for button, stroke in pairs(TabBtns) do TweenService:Create(button, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(22, 25, 34), TextColor3 = Color3.fromRGB(130, 140, 160) }):Play() TweenService:Create(stroke, TweenInfo.new(0.2), {Transparency = 1}):Play() end TabPage.Visible = true TweenService:Create(NavBtn, TweenInfo.new(0.2), { BackgroundColor3 = Color3.fromRGB(28, 32, 45), TextColor3 = Color3.fromRGB(255, 255, 255) }):Play() TweenService:Create(BtnStroke, TweenInfo.new(0.2), {Transparency = 0.3}):Play() end) Tabs[Name] = TabPage TabBtns[NavBtn] = BtnStroke return TabPage end local MatchTab = CreateTab("Match & Auto", 1) local VisualsTab = CreateTab("Visuals", 2) local GameplayTab = CreateTab("Gameplay", 3) -- Default Active Tab Tabs["Match & Auto"].Visible = true for button, stroke in pairs(TabBtns) do if button.Text == "Match & Auto" then button.BackgroundColor3 = Color3.fromRGB(28, 32, 45) button.TextColor3 = Color3.fromRGB(255, 255, 255) stroke.Transparency = 0.3 end end ------------------------------------------------------------ -- UI CONTROLS BUILDER ------------------------------------------------------------ local function AddToggle(Parent, TitleText, DefaultState, Callback) local Card = Instance.new("Frame") Card.Size = UDim2.new(1, 0, 0, 42) Card.BackgroundColor3 = Color3.fromRGB(20, 23, 31) Card.BorderSizePixel = 0 Card.Parent = Parent Instance.new("UICorner", Card).CornerRadius = UDim.new(0, 8) local Label = Instance.new("TextLabel") Label.Size = UDim2.new(1, -60, 1, 0) Label.Position = UDim2.fromOffset(12, 0) Label.BackgroundTransparency = 1 Label.Text = TitleText Label.TextColor3 = Color3.fromRGB(220, 225, 235) Label.TextSize = 12 Label.Font = Enum.Font.GothamMedium Label.TextXAlignment = Enum.TextXAlignment.Left Label.Parent = Card local SwitchTrack = Instance.new("Frame") SwitchTrack.Size = UDim2.fromOffset(38, 20) SwitchTrack.Position = UDim2.new(1, -48, 0.5, -10) SwitchTrack.BackgroundColor3 = DefaultState and Color3.fromRGB(0, 229, 255) or Color3.fromRGB(35, 40, 52) SwitchTrack.Parent = Card Instance.new("UICorner", SwitchTrack).CornerRadius = UDim.new(1, 0) local Knob = Instance.new("Frame") Knob.Size = UDim2.fromOffset(14, 14) Knob.Position = DefaultState and UDim2.new(1, -17, 0.5, -7) or UDim2.new(0, 3, 0.5, -7) Knob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Knob.Parent = SwitchTrack Instance.new("UICorner", Knob).CornerRadius = UDim.new(1, 0) local ClickArea = Instance.new("TextButton") ClickArea.Size = UDim2.fromScale(1, 1) ClickArea.BackgroundTransparency = 1 ClickArea.Text = "" ClickArea.Parent = Card local State = DefaultState ClickArea.MouseButton1Click:Connect(function() State = not State TweenService:Create(SwitchTrack, TweenInfo.new(0.2), { BackgroundColor3 = State and Color3.fromRGB(0, 229, 255) or Color3.fromRGB(35, 40, 52) }):Play() TweenService:Create(Knob, TweenInfo.new(0.2), { Position = State and UDim2.new(1, -17, 0.5, -7) or UDim2.new(0, 3, 0.5, -7) }):Play() Callback(State) end) end local function AddDropdown(Parent, TitleText, Options, Default, Callback) local Card = Instance.new("Frame") Card.Size = UDim2.new(1, 0, 0, 48) Card.BackgroundColor3 = Color3.fromRGB(20, 23, 31) Card.BorderSizePixel = 0 Card.Parent = Parent Instance.new("UICorner", Card).CornerRadius = UDim.new(0, 8) local Label = Instance.new("TextLabel") Label.Size = UDim2.new(0.45, 0, 1, 0) Label.Position = UDim2.fromOffset(12, 0) Label.BackgroundTransparency = 1 Label.Text = TitleText Label.TextColor3 = Color3.fromRGB(220, 225, 235) Label.TextSize = 12 Label.Font = Enum.Font.GothamMedium Label.TextXAlignment = Enum.TextXAlignment.Left Label.Parent = Card local SelectBtn = Instance.new("TextButton") SelectBtn.Size = UDim2.new(0.5, -12, 0, 30) SelectBtn.Position = UDim2.new(0.5, 0, 0.5, -15) SelectBtn.BackgroundColor3 = Color3.fromRGB(28, 32, 43) SelectBtn.Text = Default .. " ▼" SelectBtn.TextColor3 = Color3.fromRGB(0, 229, 255) SelectBtn.Font = Enum.Font.GothamBold SelectBtn.TextSize = 11 SelectBtn.Parent = Card Instance.new("UICorner", SelectBtn).CornerRadius = UDim.new(0, 6) local CurrentIdx = 1 for idx, val in ipairs(Options) do if val == Default then CurrentIdx = idx break end end SelectBtn.MouseButton1Click:Connect(function() CurrentIdx = (CurrentIdx % #Options) + 1 local selected = Options[CurrentIdx] SelectBtn.Text = selected .. " ▼" Callback(selected) end) end local function AddTextBox(Parent, TitleText, DefaultText, Callback) local Card = Instance.new("Frame") Card.Size = UDim2.new(1, 0, 0, 48) Card.BackgroundColor3 = Color3.fromRGB(20, 23, 31) Card.BorderSizePixel = 0 Card.Parent = Parent Instance.new("UICorner", Card).CornerRadius = UDim.new(0, 8) local Label = Instance.new("TextLabel") Label.Size = UDim2.new(0.45, 0, 1, 0) Label.Position = UDim2.fromOffset(12, 0) Label.BackgroundTransparency = 1 Label.Text = TitleText Label.TextColor3 = Color3.fromRGB(220, 225, 235) Label.TextSize = 12 Label.Font = Enum.Font.GothamMedium Label.TextXAlignment = Enum.TextXAlignment.Left Label.Parent = Card local BoxContainer = Instance.new("Frame") BoxContainer.Size = UDim2.new(0.5, -12, 0, 30) BoxContainer.Position = UDim2.new(0.5, 0, 0.5, -15) BoxContainer.BackgroundColor3 = Color3.fromRGB(28, 32, 43) BoxContainer.BorderSizePixel = 0 BoxContainer.Parent = Card Instance.new("UICorner", BoxContainer).CornerRadius = UDim.new(0, 6) local Stroke = Instance.new("UIStroke") Stroke.Color = Color3.fromRGB(0, 229, 255) Stroke.Transparency = 0.8 Stroke.Thickness = 1 Stroke.Parent = BoxContainer local TextBox = Instance.new("TextBox") TextBox.Size = UDim2.new(1, -10, 1, 0) TextBox.Position = UDim2.fromOffset(5, 0) TextBox.BackgroundTransparency = 1 TextBox.Text = DefaultText TextBox.TextColor3 = Color3.fromRGB(255, 255, 255) TextBox.PlaceholderText = "Type message..." TextBox.PlaceholderColor3 = Color3.fromRGB(120, 130, 150) TextBox.Font = Enum.Font.Gotham TextBox.TextSize = 11 TextBox.ClearTextOnFocus = false TextBox.Parent = BoxContainer TextBox.FocusLost:Connect(function() Callback(TextBox.Text) end) end local function AddSlider(Parent, TitleText, Min, Max, Default, Callback) local Card = Instance.new("Frame") Card.Size = UDim2.new(1, 0, 0, 52) Card.BackgroundColor3 = Color3.fromRGB(20, 23, 31) Card.BorderSizePixel = 0 Card.Parent = Parent Instance.new("UICorner", Card).CornerRadius = UDim.new(0, 8) local Label = Instance.new("TextLabel") Label.Size = UDim2.new(1, -60, 0, 26) Label.Position = UDim2.fromOffset(12, 2) Label.BackgroundTransparency = 1 Label.Text = TitleText Label.TextColor3 = Color3.fromRGB(220, 225, 235) Label.TextSize = 12 Label.Font = Enum.Font.GothamMedium Label.TextXAlignment = Enum.TextXAlignment.Left Label.Parent = Card local ValLabel = Instance.new("TextLabel") ValLabel.Size = UDim2.new(0, 40, 0, 26) ValLabel.Position = UDim2.new(1, -50, 0, 2) ValLabel.BackgroundTransparency = 1 ValLabel.Text = tostring(Default) ValLabel.TextColor3 = Color3.fromRGB(0, 229, 255) ValLabel.TextSize = 12 ValLabel.Font = Enum.Font.GothamBold ValLabel.TextXAlignment = Enum.TextXAlignment.Right ValLabel.Parent = Card local Track = Instance.new("Frame") Track.Size = UDim2.new(1, -24, 0, 5) Track.Position = UDim2.fromOffset(12, 34) Track.BackgroundColor3 = Color3.fromRGB(35, 40, 52) Track.Parent = Card Instance.new("UICorner", Track).CornerRadius = UDim.new(1, 0) local Fill = Instance.new("Frame") local scale = (Default - Min) / (Max - Min) Fill.Size = UDim2.new(scale, 0, 1, 0) Fill.BackgroundColor3 = Color3.fromRGB(0, 229, 255) Fill.Parent = Track Instance.new("UICorner", Fill).CornerRadius = UDim.new(1, 0) local Active = false local function UpdateSlider(input) local clampedScale = math.clamp((input.Position.X - Track.AbsolutePosition.X) / Track.AbsoluteSize.X, 0, 1) local value = math.floor(Min + (Max - Min) * clampedScale) TweenService:Create(Fill, TweenInfo.new(0.08), {Size = UDim2.new(clampedScale, 0, 1, 0)}):Play() ValLabel.Text = tostring(value) Callback(value) end Track.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Active = true; UpdateSlider(input) end end) UserInputService.InputChanged:Connect(function(input) if Active and input.UserInputType == Enum.UserInputType.MouseMovement then UpdateSlider(input) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Active = false end end) end ------------------------------------------------------------ -- POPULATE CONTROLS ------------------------------------------------------------ -- Match & Auto Join Tab AddToggle(MatchTab, "Enable Auto-Join Match", Config.AutoJoin, function(v) Config.AutoJoin = v if v then AttemptAutoJoin() end end) AddDropdown(MatchTab, "Target Team", {"Red", "Blue", "Home", "Away"}, Config.SelectedTeam, function(choice) Config.SelectedTeam = choice end) AddDropdown(MatchTab, "Preferred Position", {"CF", "LW", "RW", "CM", "CB", "GK"}, Config.SelectedPosition, function(choice) Config.SelectedPosition = choice end) -- Visuals Tab AddToggle(VisualsTab, "Player ESP (Enemies)", Config.PlayerESP, function(v) Config.PlayerESP = v end) AddToggle(VisualsTab, "Team ESP (Teammates)", Config.TeamESP, function(v) Config.TeamESP = v end) AddToggle(VisualsTab, "Name & Distance Tags", Config.NameTags, function(v) Config.NameTags = v end) -- Gameplay Tab AddToggle(GameplayTab, "Enable Speed Boost", Config.SpeedBoost, function(v) Config.SpeedBoost = v if not v then local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then hum.WalkSpeed = 16 end end end) AddToggle(GameplayTab, "Auto Sprint", Config.AutoSprint, function(v) Config.AutoSprint = v end) AddSlider(GameplayTab, "Player Speed Value", 16, 80, Config.WalkSpeedValue, function(v) Config.WalkSpeedValue = v end) AddToggle(GameplayTab, "Auto Goal Chat", Config.AutoGoalChat, function(v) Config.AutoGoalChat = v if v then ExpandGoalHitbox() end end) AddTextBox(GameplayTab, "Goal Chat Message", Config.GoalChatMessage, function(text) Config.GoalChatMessage = text end) AddToggle(GameplayTab, "Expand Player Reach", Config.HitboxExpansion, function(v) Config.HitboxExpansion = v; ApplyPlayerHitbox() end) AddSlider(GameplayTab, "Hitbox Size Width", 2, 20, Config.HitboxSize, function(v) Config.HitboxSize = v; ApplyPlayerHitbox() end) AddSlider(GameplayTab, "Hitbox Height Boost", 2, 20, Config.HitboxHeight, function(v) Config.HitboxHeight = v; ApplyPlayerHitbox() end) AddToggle(GameplayTab, "Expand Enemy Goal Area", Config.GoalHitboxExpansion, function(v) Config.GoalHitboxExpansion = v; ExpandGoalHitbox() end) AddSlider(GameplayTab, "Goal Hitbox Range", 10, 50, Config.GoalHitboxSize, function(v) Config.GoalHitboxSize = v; ExpandGoalHitbox() end) ------------------------------------------------------------ -- DRAGGING & RIGHT SHIFT TOGGLE ------------------------------------------------------------ local Dragging, DragStart, StartPos TopBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Dragging = true DragStart = input.Position StartPos = Main.Position end end) UserInputService.InputChanged:Connect(function(input) if Dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - DragStart Main.Position = UDim2.new(StartPos.X.Scale, StartPos.X.Offset + delta.X, StartPos.Y.Scale, StartPos.Y.Offset + delta.Y) end end) TopBar.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then Dragging = false end end) -- Toggle Menu Visibility with RightShift UserInputService.InputBegan:Connect(function(input, processed) if not processed and input.KeyCode == Enum.KeyCode.RightShift then Main.Visible = not Main.Visible end end) -- Initialize goal detection setup safely task.defer(ExpandGoalHitbox)