
Key RequiredUniversal

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
})No comments yet for this script.



