local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local LOGO_ID = "rbxassetid://111131527895569" local Config = { AimAssist = false, FOV = 180, AimSpeed = 25, AimPart = "Head", ESP = false, NameESP = false, ESPDistance = 500 } local C = { Background = Color3.fromRGB(14, 12, 22), Panel = Color3.fromRGB(22, 18, 34), Panel2 = Color3.fromRGB(30, 24, 46), Accent = Color3.fromRGB(150, 100, 220), AccentLight = Color3.fromRGB(180, 140, 255), Text = Color3.fromRGB(235, 230, 245), Muted = Color3.fromRGB(130, 120, 150), Border = Color3.fromRGB(55, 45, 85), Off = Color3.fromRGB(24, 20, 36), On = Color3.fromRGB(58, 38, 100), Success = Color3.fromRGB(130, 255, 180), Danger = Color3.fromRGB(255, 130, 130) } local function IsEnemy(player) if player == LocalPlayer then return false end if LocalPlayer.Team ~= nil and player.Team ~= nil and LocalPlayer.Team == player.Team then return false end return true end local Gui = Instance.new("ScreenGui") Gui.Name = "WisteriaHub" Gui.ResetOnSpawn = false Gui.IgnoreGuiInset = true Gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling Gui.Parent = PlayerGui local Main = Instance.new("Frame") Main.Name = "Main" Main.Size = UDim2.fromOffset(240, 300) Main.Position = UDim2.new(0.5, -120, 0.5, -150) Main.BackgroundColor3 = C.Background Main.BorderSizePixel = 0 Main.Parent = Gui local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 12) MainCorner.Parent = Main local MainStroke = Instance.new("UIStroke") MainStroke.Color = C.Accent MainStroke.Thickness = 1.2 MainStroke.Transparency = 0.35 MainStroke.Parent = Main local MainGradient = Instance.new("UIGradient") MainGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(22, 16, 34)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(14, 12, 22)), ColorSequenceKeypoint.new(1, Color3.fromRGB(10, 8, 18)) }) MainGradient.Rotation = 35 MainGradient.Parent = Main local Header = Instance.new("Frame") Header.Size = UDim2.new(1, 0, 0, 42) Header.BackgroundColor3 = Color3.fromRGB(18, 14, 28) Header.BorderSizePixel = 0 Header.Parent = Main local HeaderCorner = Instance.new("UICorner") HeaderCorner.CornerRadius = UDim.new(0, 12) HeaderCorner.Parent = Header local LogoImage = Instance.new("ImageLabel") LogoImage.Size = UDim2.fromOffset(24, 24) LogoImage.Position = UDim2.fromOffset(8, 9) LogoImage.BackgroundTransparency = 1 LogoImage.Image = LOGO_ID LogoImage.ScaleType = Enum.ScaleType.Fit LogoImage.Parent = Header local HeaderTitle = Instance.new("TextLabel") HeaderTitle.BackgroundTransparency = 1 HeaderTitle.Position = UDim2.fromOffset(36, 6) HeaderTitle.Size = UDim2.fromOffset(150, 16) HeaderTitle.Text = "WISTERIA HUB" HeaderTitle.TextColor3 = C.Text HeaderTitle.TextSize = 11 HeaderTitle.Font = Enum.Font.GothamBlack HeaderTitle.TextXAlignment = Enum.TextXAlignment.Left HeaderTitle.Parent = Header local HeaderAccent = Instance.new("TextLabel") HeaderAccent.BackgroundTransparency = 1 HeaderAccent.Position = UDim2.fromOffset(37, 22) HeaderAccent.Size = UDim2.fromOffset(150, 12) HeaderAccent.Text = "COMBAT SYSTEM v1.0" HeaderAccent.TextColor3 = C.AccentLight HeaderAccent.TextSize = 7 HeaderAccent.Font = Enum.Font.GothamBold HeaderAccent.TextXAlignment = Enum.TextXAlignment.Left HeaderAccent.Parent = Header local MinimizeButton = Instance.new("TextButton") MinimizeButton.Size = UDim2.fromOffset(20, 20) MinimizeButton.Position = UDim2.new(1, -48, 0, 11) MinimizeButton.BackgroundColor3 = C.Panel2 MinimizeButton.Text = "-" MinimizeButton.TextColor3 = C.AccentLight MinimizeButton.TextSize = 13 MinimizeButton.Font = Enum.Font.GothamBold MinimizeButton.AutoButtonColor = false MinimizeButton.Parent = Header local MinimizeCorner = Instance.new("UICorner") MinimizeCorner.CornerRadius = UDim.new(0, 5) MinimizeCorner.Parent = MinimizeButton local MinimizeStroke = Instance.new("UIStroke") MinimizeStroke.Color = C.Border MinimizeStroke.Parent = MinimizeButton local Close = Instance.new("TextButton") Close.Size = UDim2.fromOffset(20, 20) Close.Position = UDim2.new(1, -24, 0, 11) Close.BackgroundColor3 = C.Panel2 Close.Text = "X" Close.TextColor3 = C.Danger Close.TextSize = 10 Close.Font = Enum.Font.GothamBold Close.AutoButtonColor = false Close.Parent = Header local CloseCorner = Instance.new("UICorner") CloseCorner.CornerRadius = UDim.new(0, 5) CloseCorner.Parent = Close local CloseStroke = Instance.new("UIStroke") CloseStroke.Color = C.Border CloseStroke.Parent = Close local HeaderLine = Instance.new("Frame") HeaderLine.Position = UDim2.new(0, 8, 1, -1) HeaderLine.Size = UDim2.new(1, -16, 0, 1) HeaderLine.BackgroundColor3 = C.Accent HeaderLine.BorderSizePixel = 0 HeaderLine.Parent = Header local HeaderGradient = Instance.new("UIGradient") HeaderGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(30, 15, 55)), ColorSequenceKeypoint.new(0.5, C.AccentLight), ColorSequenceKeypoint.new(1, Color3.fromRGB(30, 15, 55)) }) HeaderGradient.Parent = HeaderLine local ScrollFrame = Instance.new("ScrollingFrame") ScrollFrame.Position = UDim2.fromOffset(6, 48) ScrollFrame.Size = UDim2.new(1, -12, 1, -54) ScrollFrame.BackgroundTransparency = 1 ScrollFrame.BorderSizePixel = 0 ScrollFrame.ScrollBarThickness = 2 ScrollFrame.ScrollBarImageColor3 = C.Accent ScrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0) ScrollFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y ScrollFrame.Parent = Main local BodyLayout = Instance.new("UIListLayout") BodyLayout.Padding = UDim.new(0, 5) BodyLayout.SortOrder = Enum.SortOrder.LayoutOrder BodyLayout.Parent = ScrollFrame local function CreateSection(title, layoutOrder) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 0, 0) frame.BackgroundColor3 = C.Panel frame.BorderSizePixel = 0 frame.AutomaticSize = Enum.AutomaticSize.Y frame.LayoutOrder = layoutOrder frame.Parent = ScrollFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = frame local stroke = Instance.new("UIStroke") stroke.Color = C.Border stroke.Thickness = 1 stroke.Parent = frame local padding = Instance.new("UIPadding") padding.PaddingTop = UDim.new(0, 6) padding.PaddingBottom = UDim.new(0, 7) padding.PaddingLeft = UDim.new(0, 7) padding.PaddingRight = UDim.new(0, 7) padding.Parent = frame local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 4) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = frame local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, 0, 0, 11) titleLabel.BackgroundTransparency = 1 titleLabel.Text = title titleLabel.TextColor3 = C.AccentLight titleLabel.TextSize = 8 titleLabel.Font = Enum.Font.GothamBlack titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.LayoutOrder = 0 titleLabel.Parent = frame return frame end local function CreateToggle(parent, text, value, callback) local button = Instance.new("TextButton") button.Size = UDim2.new(1, 0, 0, 24) button.BackgroundColor3 = C.Off button.BorderSizePixel = 0 button.Text = "" button.AutoButtonColor = false button.Parent = parent local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 5) corner.Parent = button local stroke = Instance.new("UIStroke") stroke.Color = C.Border stroke.Thickness = 1 stroke.Transparency = 0.4 stroke.Parent = button local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -45, 1, 0) label.Position = UDim2.fromOffset(8, 0) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = C.Text label.TextSize = 9 label.Font = Enum.Font.GothamBold label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = button local status = Instance.new("TextLabel") status.Size = UDim2.fromOffset(38, 1) status.Position = UDim2.new(1, -45, 0, 0) status.BackgroundTransparency = 1 status.Text = value and "ON" or "OFF" status.TextColor3 = value and C.Success or C.Muted status.TextSize = 8 status.Font = Enum.Font.GothamBlack status.TextXAlignment = Enum.TextXAlignment.Right status.Parent = button local function Refresh(v) status.Text = v and "ON" or "OFF" status.TextColor3 = v and C.Success or C.Muted stroke.Color = v and C.AccentLight or C.Border stroke.Transparency = v and 0.15 or 0.4 button.BackgroundColor3 = v and C.On or C.Off end Refresh(value) button.MouseButton1Click:Connect(function() value = not value Refresh(value) callback(value) end) return button end local function CreateSlider(parent, text, minV, maxV, value, callback) local container = Instance.new("Frame") container.Size = UDim2.new(1, 0, 0, 26) container.BackgroundTransparency = 1 container.Parent = parent local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 0, 10) label.BackgroundTransparency = 1 label.Text = text .. ": " .. math.floor(value) label.TextColor3 = C.Text label.TextSize = 8 label.Font = Enum.Font.GothamBold label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = container local bar = Instance.new("Frame") bar.Size = UDim2.new(1, 0, 0, 4) bar.Position = UDim2.fromOffset(0, 15) bar.BackgroundColor3 = Color3.fromRGB(35, 28, 50) bar.BorderSizePixel = 0 bar.Parent = container local barCorner = Instance.new("UICorner") barCorner.CornerRadius = UDim.new(1, 0) barCorner.Parent = bar local fill = Instance.new("Frame") fill.Size = UDim2.fromScale(0, 1) fill.BackgroundColor3 = C.AccentLight fill.BorderSizePixel = 0 fill.Parent = bar local fillCorner = Instance.new("UICorner") fillCorner.CornerRadius = UDim.new(1, 0) fillCorner.Parent = fill local dragging = false local function SetValue(v) v = math.clamp(v, minV, maxV) local percent = (v - minV) / (maxV - minV) fill.Size = UDim2.new(percent, 0, 1, 0) label.Text = text .. ": " .. math.floor(v) callback(v) end local function ProcessInput(input) local percent = math.clamp((input.Position.X - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1) SetValue(minV + (maxV - minV) * percent) end bar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true ProcessInput(input) end end) UserInputService.InputChanged:Connect(function(input) if not dragging then return end if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then ProcessInput(input) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) SetValue(value) return container end local function CreateCycle(parent, text, options, value, callback) local button = Instance.new("TextButton") button.Size = UDim2.new(1, 0, 0, 24) button.BackgroundColor3 = C.Off button.BorderSizePixel = 0 button.Text = "" button.AutoButtonColor = false button.Parent = parent local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 5) corner.Parent = button local stroke = Instance.new("UIStroke") stroke.Color = C.Border stroke.Thickness = 1 stroke.Transparency = 0.4 stroke.Parent = button local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -70, 1, 0) label.Position = UDim2.fromOffset(8, 0) label.BackgroundTransparency = 1 label.Text = text label.TextColor3 = C.Text label.TextSize = 9 label.Font = Enum.Font.GothamBold label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = button local current = Instance.new("TextLabel") current.Size = UDim2.fromOffset(65, 1) current.Position = UDim2.new(1, -70, 0, 0) current.BackgroundTransparency = 1 current.Text = value current.TextColor3 = C.AccentLight current.TextSize = 8 current.Font = Enum.Font.GothamBlack current.TextXAlignment = Enum.TextXAlignment.Right current.Parent = button local index = 1 for i, v in ipairs(options) do if v == value then index = i break end end button.MouseButton1Click:Connect(function() index += 1 if index > #options then index = 1 end value = options[index] current.Text = value callback(value) end) return button end local aimSection = CreateSection("AIM ASSIST", 1) CreateToggle(aimSection, "Enable Aim Assist", Config.AimAssist, function(v) Config.AimAssist = v end) CreateSlider(aimSection, "FOV", 30, 600, Config.FOV, function(v) Config.FOV = v end) CreateSlider(aimSection, "Aim Speed", 1, 100, Config.AimSpeed, function(v) Config.AimSpeed = v end) CreateCycle(aimSection, "Aim Part", { "Head", "UpperTorso", "Torso", "HumanoidRootPart" }, Config.AimPart, function(v) Config.AimPart = v end) local espSection = CreateSection("VISUALS", 2) CreateToggle(espSection, "Enable ESP", Config.ESP, function(v) Config.ESP = v end) CreateToggle(espSection, "Enable Name ESP", Config.NameESP, function(v) Config.NameESP = v end) local function GetAimPart(character) if not character then return nil end return character:FindFirstChild(Config.AimPart) or character:FindFirstChild("HumanoidRootPart") end local function FindTarget() local Camera = workspace.CurrentCamera if not Camera then return nil end local mouse = UserInputService:GetMouseLocation() local closest = nil local closestDistance = Config.FOV for _, player in ipairs(Players:GetPlayers()) do if IsEnemy(player) then local character = player.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") local part = GetAimPart(character) if humanoid and humanoid.Health > 0 and part then local screen, visible = Camera:WorldToViewportPoint(part.Position) if visible and screen.Z > 0 then local distance = (Vector2.new(screen.X, screen.Y) - Vector2.new(mouse.X, mouse.Y)).Magnitude if distance < closestDistance then closestDistance = distance closest = part end end end end end return closest end local CurrentTarget = nil local FOVCircle = Instance.new("Frame") FOVCircle.AnchorPoint = Vector2.new(0.5, 0.5) FOVCircle.BackgroundTransparency = 1 FOVCircle.Visible = false FOVCircle.ZIndex = 20 FOVCircle.Parent = Gui local FOVCorner = Instance.new("UICorner") FOVCorner.CornerRadius = UDim.new(1, 0) FOVCorner.Parent = FOVCircle local FOVStroke = Instance.new("UIStroke") FOVStroke.Color = C.AccentLight FOVStroke.Thickness = 1 FOVStroke.Transparency = 0.2 FOVStroke.Parent = FOVCircle RunService.RenderStepped:Connect(function(dt) local Camera = workspace.CurrentCamera if not Camera then return end local mouse = UserInputService:GetMouseLocation() FOVCircle.Position = UDim2.fromOffset(mouse.X, mouse.Y) FOVCircle.Size = UDim2.fromOffset(Config.FOV * 2, Config.FOV * 2) FOVCircle.Visible = Config.AimAssist if not Config.AimAssist then CurrentTarget = nil return end if not CurrentTarget or not CurrentTarget.Parent then CurrentTarget = FindTarget() end if not CurrentTarget then return end local character = CurrentTarget.Parent local player = Players:GetPlayerFromCharacter(character) if not player or not IsEnemy(player) then CurrentTarget = nil return end local humanoid = character:FindFirstChildOfClass("Humanoid") if not humanoid or humanoid.Health <= 0 then CurrentTarget = nil return end local screen, visible = Camera:WorldToViewportPoint(CurrentTarget.Position) if not visible then CurrentTarget = nil return end local distance = (Vector2.new(screen.X, screen.Y) - Vector2.new(mouse.X, mouse.Y)).Magnitude if distance > Config.FOV then CurrentTarget = FindTarget() return end local desired = CFrame.lookAt(Camera.CFrame.Position, CurrentTarget.Position) local alpha = 1 - math.exp(-Config.AimSpeed * dt) Camera.CFrame = Camera.CFrame:Lerp(desired, alpha) end) local ESPFolder = Instance.new("Folder") ESPFolder.Name = "WisteriaESP" ESPFolder.Parent = workspace local ESPObjects = {} local function RemoveESP(player) local data = ESPObjects[player] if not data then return end if data.Highlight then data.Highlight:Destroy() end if data.NameTag then data.NameTag:Destroy() end ESPObjects[player] = nil end local function CreateESP(player) if player == LocalPlayer then return end if not Config.ESP and not Config.NameESP then RemoveESP(player) return end if not IsEnemy(player) then RemoveESP(player) return end local character = player.Character if not character then return end local humanoid = character:FindFirstChildOfClass("Humanoid") local head = character:FindFirstChild("Head") if not humanoid or not head then return end if humanoid.Health <= 0 then RemoveESP(player) return end RemoveESP(player) local data = { Character = character } if Config.ESP then local highlight = Instance.new("Highlight") highlight.Name = "PlayerESP" highlight.Adornee = character highlight.FillColor = Color3.fromRGB(150, 100, 220) highlight.OutlineColor = Color3.fromRGB(180, 140, 255) highlight.FillTransparency = 0.65 highlight.OutlineTransparency = 0 highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Parent = ESPFolder data.Highlight = highlight end if Config.NameESP then local tag = Instance.new("BillboardGui") tag.Name = "NameESP" tag.Adornee = head tag.Size = UDim2.fromOffset(220, 40) tag.StudsOffset = Vector3.new(0, 3, 0) tag.AlwaysOnTop = true tag.MaxDistance = Config.ESPDistance tag.Parent = ESPFolder local label = Instance.new("TextLabel") label.BackgroundTransparency = 1 label.Size = UDim2.fromScale(1, 1) label.Text = player.DisplayName label.TextColor3 = Color3.fromRGB(200, 170, 255) label.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) label.TextStrokeTransparency = 0 label.TextSize = 14 label.Font = Enum.Font.GothamBold label.Parent = tag data.NameTag = tag end ESPObjects[player] = data end local function UpdateESP() for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer then if Config.ESP or Config.NameESP then local character = player.Character local data = ESPObjects[player] if not data or data.Character ~= character then CreateESP(player) end else RemoveESP(player) end end end end local ESPTimer = 0 RunService.Heartbeat:Connect(function(dt) ESPTimer += dt if ESPTimer < 0.1 then return end ESPTimer = 0 UpdateESP() end) local function SetupPlayer(player) if player == LocalPlayer then return end player.CharacterAdded:Connect(function(character) RemoveESP(player) local humanoid = character:WaitForChild("Humanoid", 5) local head = character:WaitForChild("Head", 5) if humanoid and head then task.wait(0.15) if Config.ESP or Config.NameESP then CreateESP(player) end end end) player.CharacterRemoving:Connect(function() RemoveESP(player) CurrentTarget = nil end) end for _, player in ipairs(Players:GetPlayers()) do SetupPlayer(player) end Players.PlayerAdded:Connect(SetupPlayer) Players.PlayerRemoving:Connect(function(player) RemoveESP(player) CurrentTarget = nil end) local function MakeDraggable(frame, handle) handle = handle or frame local dragging = false local dragInput = nil local dragStart = nil local startPosition = nil handle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPosition = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) handle.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart frame.Position = UDim2.new( startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y ) end end) end MakeDraggable(Main, Header) local FloatingButton = Instance.new("TextButton") FloatingButton.Name = "FloatingButton" FloatingButton.Size = UDim2.fromOffset(40, 40) FloatingButton.Position = UDim2.fromOffset(20, 250) FloatingButton.BackgroundColor3 = Color3.fromRGB(18, 14, 28) FloatingButton.BorderSizePixel = 0 FloatingButton.Text = "" FloatingButton.AutoButtonColor = false FloatingButton.Visible = false FloatingButton.Parent = Gui local FloatCorner = Instance.new("UICorner") FloatCorner.CornerRadius = UDim.new(1, 0) FloatCorner.Parent = FloatingButton local FloatStroke = Instance.new("UIStroke") FloatStroke.Color = C.AccentLight FloatStroke.Thickness = 2 FloatStroke.Transparency = 0.2 FloatStroke.Parent = FloatingButton local FloatLogo = Instance.new("ImageLabel") FloatLogo.Size = UDim2.fromOffset(28, 28) FloatLogo.Position = UDim2.fromOffset(6, 6) FloatLogo.BackgroundTransparency = 1 FloatLogo.Image = LOGO_ID FloatLogo.ScaleType = Enum.ScaleType.Fit FloatLogo.Parent = FloatingButton MakeDraggable(FloatingButton, FloatingButton) local minimized = false local savedPosition = Main.Position local function Minimize() if minimized then return end minimized = true savedPosition = Main.Position local tween = TweenService:Create(Main, TweenInfo.new(0.3, Enum.EasingStyle.Quad), { Position = UDim2.new(0.5, -120, 0, -600) }) tween:Play() tween.Completed:Connect(function() Main.Visible = false FloatingButton.Visible = true end) end local function Restore() if not minimized then return end minimized = false FloatingButton.Visible = false Main.Visible = true Main.Position = UDim2.new(0.5, -120, 0, -600) task.wait(0.05) local tween = TweenService:Create(Main, TweenInfo.new(0.35, Enum.EasingStyle.Back), { Position = savedPosition }) tween:Play() end MinimizeButton.MouseButton1Click:Connect(Minimize) FloatingButton.MouseButton1Click:Connect(Restore) Close.MouseButton1Click:Connect(function() Main.Visible = false FloatingButton.Visible = true minimized = true end) Main.Visible = true Main.Size = UDim2.fromOffset(20, 20) Main.Rotation = -4 TweenService:Create( Main, TweenInfo.new(0.55, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.fromOffset(240, 300), Rotation = 0} ):Play() game:GetService("StarterGui"):SetCore("SendNotification", { Title = "Wisteria Hub Loaded", Text = "Combat system ready.", Icon = LOGO_ID, Duration = 5 })