Wisteria Hub Aimbot/Aim Assist + Visual ESP (KEYLESS)
Key RequiredUniversal

Wisteria Hub Aimbot/Aim Assist + Visual ESP (KEYLESS)

Universal ScriptShiroHirumiShiroHirumi 2.5K views 13.4K executesUpdated Sep 30, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•808 lines (22828 chars)
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
})

Features & Information

aim assists aimbot esp name esp
#aim assists#aimbot#esp#name esp#best

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts