Animations HUB v3
Key RequiredUniversal

Animations HUB v3

Universal ScriptAmongTheYoutuberAmongTheYoutuber 966 views 3.5K executesUpdated Sep 29, 2026
Unrated
00
Lua Script•630 lines (16841 chars)
--========================================================
-- ANIMATIONS HUB V3 - FIXED
-- MUST BE A LOCALSCRIPT
-- Put in StarterPlayer > StarterPlayerScripts
--========================================================

local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")

local Player = Players.LocalPlayer
local PlayerGui = Player:WaitForChild("PlayerGui")

-- Remove an old copy
local Old = PlayerGui:FindFirstChild("AnimationsHubV3")
if Old then
	Old:Destroy()
end

--========================================================
-- COLORS
--========================================================

local BLUE = Color3.fromRGB(0, 140, 255)
local DARK = Color3.fromRGB(13, 16, 23)
local DARK2 = Color3.fromRGB(20, 24, 33)
local BLACK = Color3.fromRGB(5, 7, 10)
local WHITE = Color3.fromRGB(245, 245, 245)
local RED = Color3.fromRGB(190, 45, 55)

--========================================================
-- GUI
--========================================================

local Gui = Instance.new("ScreenGui")
Gui.Name = "AnimationsHubV3"
Gui.ResetOnSpawn = false
Gui.IgnoreGuiInset = true
Gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
Gui.Parent = PlayerGui

--========================================================
-- MAIN
--========================================================

local Main = Instance.new("Frame")
Main.Name = "Main"
Main.AnchorPoint = Vector2.new(0.5, 0.5)
Main.Position = UDim2.fromScale(0.5, 0.5)
Main.Size = UDim2.fromOffset(520, 520)
Main.BackgroundColor3 = DARK
Main.BorderSizePixel = 0
Main.Parent = Gui

local MainCorner = Instance.new("UICorner")
MainCorner.CornerRadius = UDim.new(0, 16)
MainCorner.Parent = Main

local MainStroke = Instance.new("UIStroke")
MainStroke.Color = BLUE
MainStroke.Thickness = 1.5
MainStroke.Parent = Main

--========================================================
-- HEADER
--========================================================

local Header = Instance.new("Frame")
Header.Size = UDim2.new(1, 0, 0, 65)
Header.BackgroundColor3 = BLACK
Header.BorderSizePixel = 0
Header.Active = true
Header.Parent = Main

local HeaderCorner = Instance.new("UICorner")
HeaderCorner.CornerRadius = UDim.new(0, 16)
HeaderCorner.Parent = Header

local Title = Instance.new("TextLabel")
Title.BackgroundTransparency = 1
Title.Position = UDim2.fromOffset(18, 8)
Title.Size = UDim2.fromOffset(280, 27)
Title.Font = Enum.Font.GothamBold
Title.Text = "Animations Hub V3"
Title.TextColor3 = WHITE
Title.TextSize = 20
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = Header

local Welcome = Instance.new("TextLabel")
Welcome.BackgroundTransparency = 1
Welcome.Position = UDim2.fromOffset(19, 36)
Welcome.Size = UDim2.fromOffset(280, 20)
Welcome.Font = Enum.Font.Gotham
Welcome.Text = "Welcome " .. Player.Name
Welcome.TextColor3 = BLUE
Welcome.TextSize = 11
Welcome.TextXAlignment = Enum.TextXAlignment.Left
Welcome.Parent = Header

--========================================================
-- CLOSE BUTTON
--========================================================

local Close = Instance.new("TextButton")
Close.Name = "Close"
Close.AnchorPoint = Vector2.new(1, 0.5)
Close.Position = UDim2.new(1, -15, 0.5, 0)
Close.Size = UDim2.fromOffset(38, 38)
Close.BackgroundColor3 = DARK2
Close.BorderSizePixel = 0
Close.Text = "×"
Close.TextColor3 = WHITE
Close.Font = Enum.Font.GothamBold
Close.TextSize = 25
Close.Parent = Header

local CloseCorner = Instance.new("UICorner")
CloseCorner.CornerRadius = UDim.new(1, 0)
CloseCorner.Parent = Close

local CloseStroke = Instance.new("UIStroke")
CloseStroke.Color = BLUE
CloseStroke.Parent = Close

--========================================================
-- CREDITS BUTTON
--========================================================

local CreditsButton = Instance.new("TextButton")
CreditsButton.Position = UDim2.fromOffset(300, 17)
CreditsButton.Size = UDim2.fromOffset(80, 32)
CreditsButton.BackgroundColor3 = DARK2
CreditsButton.BorderSizePixel = 0
CreditsButton.Text = "CREDITS"
CreditsButton.TextColor3 = WHITE
CreditsButton.Font = Enum.Font.GothamBold
CreditsButton.TextSize = 10
CreditsButton.Parent = Header

local CreditsCorner = Instance.new("UICorner")
CreditsCorner.CornerRadius = UDim.new(0, 8)
CreditsCorner.Parent = CreditsButton

--========================================================
-- SEARCH
--========================================================

local Search = Instance.new("TextBox")
Search.Position = UDim2.fromOffset(15, 78)
Search.Size = UDim2.new(1, -30, 0, 40)
Search.BackgroundColor3 = DARK2
Search.BorderSizePixel = 0
Search.PlaceholderText = "Search animations..."
Search.PlaceholderColor3 = Color3.fromRGB(120, 125, 135)
Search.Text = ""
Search.TextColor3 = WHITE
Search.Font = Enum.Font.Gotham
Search.TextSize = 13
Search.ClearTextOnFocus = false
Search.Parent = Main

local SearchCorner = Instance.new("UICorner")
SearchCorner.CornerRadius = UDim.new(0, 9)
SearchCorner.Parent = Search

local SearchPadding = Instance.new("UIPadding")
SearchPadding.PaddingLeft = UDim.new(0, 12)
SearchPadding.Parent = Search

--========================================================
-- STOP
--========================================================

local Stop = Instance.new("TextButton")
Stop.Position = UDim2.fromOffset(15, 125)
Stop.Size = UDim2.new(0.5, -20, 0, 35)
Stop.BackgroundColor3 = Color3.fromRGB(55, 22, 27)
Stop.BorderSizePixel = 0
Stop.Text = "■  STOP ANIMATION"
Stop.TextColor3 = WHITE
Stop.Font = Enum.Font.GothamBold
Stop.TextSize = 11
Stop.Parent = Main

local StopCorner = Instance.new("UICorner")
StopCorner.CornerRadius = UDim.new(0, 8)
StopCorner.Parent = Stop

--========================================================
-- DESTROY
--========================================================

local Destroy = Instance.new("TextButton")
Destroy.Position = UDim2.new(0.5, 5, 0, 125)
Destroy.Size = UDim2.new(0.5, -20, 0, 35)
Destroy.BackgroundColor3 = Color3.fromRGB(75, 20, 27)
Destroy.BorderSizePixel = 0
Destroy.Text = "✕  DESTROY GUI"
Destroy.TextColor3 = WHITE
Destroy.Font = Enum.Font.GothamBold
Destroy.TextSize = 11
Destroy.Parent = Main

local DestroyCorner = Instance.new("UICorner")
DestroyCorner.CornerRadius = UDim.new(0, 8)
DestroyCorner.Parent = Destroy

--========================================================
-- ANIMATION LIST
--========================================================

local List = Instance.new("ScrollingFrame")
List.Position = UDim2.fromOffset(15, 172)
List.Size = UDim2.new(1, -30, 1, -187)
List.BackgroundTransparency = 1
List.BorderSizePixel = 0
List.ScrollBarThickness = 4
List.ScrollBarImageColor3 = BLUE
List.CanvasSize = UDim2.new(0, 0, 0, 0)
List.AutomaticCanvasSize = Enum.AutomaticSize.Y
List.Parent = Main

local Layout = Instance.new("UIListLayout")
Layout.Padding = UDim.new(0, 7)
Layout.SortOrder = Enum.SortOrder.LayoutOrder
Layout.Parent = List

local Padding = Instance.new("UIPadding")
Padding.PaddingBottom = UDim.new(0, 10)
Padding.Parent = List

--========================================================
-- ANIMATIONS
--========================================================

local Animations = {
	{"Wave", "128777973"},
	{"Point", "128853357"},
	{"Laugh", "129423131"},
	{"Cheer", "129423030"},

	{"Dance 1", "182435998"},
	{"Dance 2", "182436842"},
	{"Dance 3", "182436935"},

	{"Dance 1 Variant", "182491037"},
	{"Dance 2 Variant", "182491248"},
	{"Dance 3 Variant", "182491368"},

	{"Tool Hold", "182393478"},
	{"Tool Slash", "129967390"},
	{"Tool Lunge", "129967478"},

	{"Sit", "178130996"},

	{"Sword Swing", "32659699"},
	{"Sword Thrust", "32659703"},
	{"Two Hand Sword Swing", "32659706"}
}

--========================================================
-- ANIMATION SYSTEM
--========================================================

local CurrentTrack

local function StopAnimation()
	if CurrentTrack then
		pcall(function()
			CurrentTrack:Stop(0.2)
			CurrentTrack:Destroy()
		end)
		CurrentTrack = nil
	end
end

local function PlayAnimation(ID)

	local Character = Player.Character
	if not Character then
		return
	end

	local Humanoid = Character:FindFirstChildOfClass("Humanoid")
	if not Humanoid then
		return
	end

	local Animator = Humanoid:FindFirstChildOfClass("Animator")

	if not Animator then
		Animator = Instance.new("Animator")
		Animator.Parent = Humanoid
	end

	StopAnimation()

	local Animation = Instance.new("Animation")
	Animation.AnimationId = "rbxassetid://" .. ID

	local Success, Track = pcall(function()
		return Animator:LoadAnimation(Animation)
	end)

	Animation:Destroy()

	if not Success or not Track then
		warn("Could not load animation: " .. ID)
		return
	end

	CurrentTrack = Track
	Track.Priority = Enum.AnimationPriority.Action
	Track.Looped = true

	pcall(function()
		Track:Play(0.2)
	end)
end

--========================================================
-- CREATE BUTTONS
--========================================================

local AnimationButtons = {}

for Index, Data in ipairs(Animations) do

	local Name = Data[1]
	local ID = Data[2]

	local Button = Instance.new("TextButton")
	Button.Name = Name
	Button.Size = UDim2.new(1, -5, 0, 50)
	Button.BackgroundColor3 = DARK2
	Button.BorderSizePixel = 0
	Button.Text = ""
	Button.AutoButtonColor = false
	Button.LayoutOrder = Index
	Button.Parent = List

	local Corner = Instance.new("UICorner")
	Corner.CornerRadius = UDim.new(0, 9)
	Corner.Parent = Button

	local NameText = Instance.new("TextLabel")
	NameText.BackgroundTransparency = 1
	NameText.Position = UDim2.fromOffset(15, 5)
	NameText.Size = UDim2.new(1, -120, 0, 22)
	NameText.Font = Enum.Font.GothamBold
	NameText.Text = Name
	NameText.TextColor3 = WHITE
	NameText.TextSize = 14
	NameText.TextXAlignment = Enum.TextXAlignment.Left
	NameText.Parent = Button

	local IDText = Instance.new("TextLabel")
	IDText.BackgroundTransparency = 1
	IDText.Position = UDim2.fromOffset(15, 27)
	IDText.Size = UDim2.new(1, -120, 0, 16)
	IDText.Font = Enum.Font.Gotham
	IDText.Text = "ID: " .. ID
	IDText.TextColor3 = Color3.fromRGB(135, 140, 150)
	IDText.TextSize = 10
	IDText.TextXAlignment = Enum.TextXAlignment.Left
	IDText.Parent = Button

	local PlayText = Instance.new("TextLabel")
	PlayText.AnchorPoint = Vector2.new(1, 0.5)
	PlayText.Position = UDim2.new(1, -10, 0.5, 0)
	PlayText.Size = UDim2.fromOffset(55, 27)
	PlayText.BackgroundColor3 = Color3.fromRGB(0, 70, 135)
	PlayText.BorderSizePixel = 0
	PlayText.Text = "PLAY"
	PlayText.TextColor3 = WHITE
	PlayText.Font = Enum.Font.GothamBold
	PlayText.TextSize = 10
	PlayText.Parent = Button

	local PlayCorner = Instance.new("UICorner")
	PlayCorner.CornerRadius = UDim.new(0, 7)
	PlayCorner.Parent = PlayText

	Button.MouseButton1Click:Connect(function()
		PlayAnimation(ID)
	end)

	table.insert(AnimationButtons, {
		Button = Button,
		Name = string.lower(Name)
	})
end

--========================================================
-- SEARCH
--========================================================

Search:GetPropertyChangedSignal("Text"):Connect(function()

	local Query = string.lower(Search.Text)

	for _, Data in ipairs(AnimationButtons) do

		if Query == "" then
			Data.Button.Visible = true
		else
			Data.Button.Visible =
				string.find(Data.Name, Query, 1, true) ~= nil
		end

	end
end)

--========================================================
-- STOP
--========================================================

Stop.MouseButton1Click:Connect(function()
	StopAnimation()
end)

--========================================================
-- CREDITS PAGE
--========================================================

local CreditsPage = Instance.new("Frame")
CreditsPage.Position = UDim2.fromOffset(15, 78)
CreditsPage.Size = UDim2.new(1, -30, 1, -93)
CreditsPage.BackgroundColor3 = DARK2
CreditsPage.BorderSizePixel = 0
CreditsPage.Visible = false
CreditsPage.Parent = Main

local CreditsCorner2 = Instance.new("UICorner")
CreditsCorner2.CornerRadius = UDim.new(0, 12)
CreditsCorner2.Parent = CreditsPage

local CreditsTitle = Instance.new("TextLabel")
CreditsTitle.BackgroundTransparency = 1
CreditsTitle.Position = UDim2.fromOffset(15, 35)
CreditsTitle.Size = UDim2.new(1, -30, 0, 40)
CreditsTitle.Font = Enum.Font.GothamBold
CreditsTitle.Text = "Credits"
CreditsTitle.TextColor3 = BLUE
CreditsTitle.TextSize = 27
CreditsTitle.Parent = CreditsPage

local CreditsText = Instance.new("TextLabel")
CreditsText.BackgroundTransparency = 1
CreditsText.Position = UDim2.fromOffset(20, 100)
CreditsText.Size = UDim2.new(1, -40, 0, 130)
CreditsText.Font = Enum.Font.Gotham
CreditsText.Text =
	"Another Script from @AmongTheYoutuber from YouTube\n\nThanks for Using this script!"
CreditsText.TextColor3 = WHITE
CreditsText.TextSize = 17
CreditsText.TextWrapped = true
CreditsText.TextXAlignment = Enum.TextXAlignment.Center
CreditsText.TextYAlignment = Enum.TextYAlignment.Center
CreditsText.Parent = CreditsPage

local Back = Instance.new("TextButton")
Back.AnchorPoint = Vector2.new(0.5, 1)
Back.Position = UDim2.new(0.5, 0, 1, -20)
Back.Size = UDim2.fromOffset(180, 40)
Back.BackgroundColor3 = Color3.fromRGB(0, 70, 135)
Back.BorderSizePixel = 0
Back.Text = "←  ANIMATIONS"
Back.TextColor3 = WHITE
Back.Font = Enum.Font.GothamBold
Back.TextSize = 12
Back.Parent = CreditsPage

local BackCorner = Instance.new("UICorner")
BackCorner.CornerRadius = UDim.new(0, 9)
BackCorner.Parent = Back

CreditsButton.MouseButton1Click:Connect(function()
	List.Visible = false
	Search.Visible = false
	Stop.Visible = false
	Destroy.Visible = false
	CreditsPage.Visible = true
end)

Back.MouseButton1Click:Connect(function()
	List.Visible = true
	Search.Visible = true
	Stop.Visible = true
	Destroy.Visible = true
	CreditsPage.Visible = false
end)

--========================================================
-- MINI CIRCLE
--========================================================

local Mini = Instance.new("TextButton")
Mini.AnchorPoint = Vector2.new(1, 1)
Mini.Position = UDim2.new(1, -25, 1, -25)
Mini.Size = UDim2.fromOffset(60, 60)
Mini.BackgroundColor3 = BLACK
Mini.BorderSizePixel = 0
Mini.Text = "AH"
Mini.TextColor3 = WHITE
Mini.Font = Enum.Font.GothamBold
Mini.TextSize = 16
Mini.Visible = false
Mini.Parent = Gui

local MiniCorner = Instance.new("UICorner")
MiniCorner.CornerRadius = UDim.new(1, 0)
MiniCorner.Parent = Mini

local MiniStroke = Instance.new("UIStroke")
MiniStroke.Color = BLUE
MiniStroke.Thickness = 3
MiniStroke.Parent = Mini

--========================================================
-- OPEN / CLOSE
--========================================================

local OpenSize = UDim2.fromOffset(520, 520)

local function OpenGUI()

	Mini.Visible = false
	Main.Visible = true

	Main.Size = UDim2.fromOffset(1, 1)

	TweenService:Create(
		Main,
		TweenInfo.new(0.35, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
		{Size = OpenSize}
	):Play()
end

local function CloseGUI()

	Main.Visible = false
	Mini.Visible = true

	Mini.Size = UDim2.fromOffset(1, 1)

	TweenService:Create(
		Mini,
		TweenInfo.new(0.35, Enum.EasingStyle.Back, Enum.EasingDirection.Out),
		{Size = UDim2.fromOffset(60, 60)}
	):Play()
end

Close.MouseButton1Click:Connect(CloseGUI)

Mini.MouseButton1Click:Connect(OpenGUI)

--========================================================
-- DESTROY - DIRECT AND RELIABLE
--========================================================

Destroy.MouseButton1Click:Connect(function()

	StopAnimation()

	-- Destroy the actual ScreenGui.
	-- This also removes the mini circle.
	if Gui then
		Gui:Destroy()
	end

end)

--========================================================
-- DRAGGING
--========================================================

local Dragging = false
local DragStart
local StartPosition

Header.InputBegan:Connect(function(Input)

	if Input.UserInputType == Enum.UserInputType.MouseButton1
		or Input.UserInputType == Enum.UserInputType.Touch then

		Dragging = true
		DragStart = Input.Position
		StartPosition = Main.Position
	end
end)

UserInputService.InputChanged:Connect(function(Input)

	if not Dragging then
		return
	end

	if Input.UserInputType ~= Enum.UserInputType.MouseMovement
		and Input.UserInputType ~= Enum.UserInputType.Touch then
		return
	end

	local Delta = Input.Position - DragStart

	Main.Position = UDim2.new(
		StartPosition.X.Scale,
		StartPosition.X.Offset + Delta.X,
		StartPosition.Y.Scale,
		StartPosition.Y.Offset + Delta.Y
	)
end)

UserInputService.InputEnded:Connect(function(Input)

	if Input.UserInputType == Enum.UserInputType.MouseButton1
		or Input.UserInputType == Enum.UserInputType.Touch then

		Dragging = false
	end
end)

--========================================================
-- INITIAL OPEN
--========================================================

Main.Visible = true

print("Animations Hub V3 loaded successfully!")

Features & Information

Animations that will be only with this script
#Key free#R only

Community Comments (1)

hitshitsOct 2, 2026

ai slop lol

More Scripts for Universal Scripts