Animation Disable gui
Key RequiredUniversal

Animation Disable gui

Universal ScriptrExploiterrExploiter 43 views 5 executesUpdated Oct 3, 2026
0.0/ 5(1 votes)
010% Positive
Lua Script•1232 lines (29504 chars)
--[[
    Animation Control Center
    LocalScript
    Place in: StarterPlayer > StarterPlayerScripts

    Features:
    • Disable non-walking animations
    • Walking/running animations remain enabled
    • Draggable GUI
    • Minimize / close
    • Control / Settings / Appearance / Hotkeys / About tabs
    • Multiple themes
    • UI scaling
    • Custom GUI hotkey
    • Notifications
    • Auto-disable non-walking animations on respawn
    • Stop current non-walking animations
]]

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

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")

--==================================================
-- SETTINGS
--==================================================

local Settings = {
	NonWalkingAnimationsDisabled = false,
	Theme = "Dark",
	UIScale = 1,
	Keybind = Enum.KeyCode.RightShift,
	Notifications = true,
	AutoDisableOnSpawn = false,
}

--==================================================
-- THEMES
--==================================================

local Themes = {
	Dark = {
		Background = Color3.fromRGB(18, 18, 23),
		Secondary = Color3.fromRGB(25, 25, 32),
		Card = Color3.fromRGB(31, 31, 40),
		Accent = Color3.fromRGB(80, 140, 255),
		Accent2 = Color3.fromRGB(100, 170, 255),
		Text = Color3.fromRGB(240, 240, 245),
		SubText = Color3.fromRGB(160, 160, 175),
		Border = Color3.fromRGB(55, 55, 70),
		Danger = Color3.fromRGB(230, 75, 75),
		Success = Color3.fromRGB(70, 200, 120),
	},

	Blue = {
		Background = Color3.fromRGB(12, 22, 38),
		Secondary = Color3.fromRGB(18, 32, 52),
		Card = Color3.fromRGB(25, 43, 68),
		Accent = Color3.fromRGB(40, 140, 255),
		Accent2 = Color3.fromRGB(80, 175, 255),
		Text = Color3.fromRGB(235, 245, 255),
		SubText = Color3.fromRGB(150, 180, 210),
		Border = Color3.fromRGB(45, 75, 110),
		Danger = Color3.fromRGB(235, 80, 80),
		Success = Color3.fromRGB(70, 210, 130),
	},

	Purple = {
		Background = Color3.fromRGB(25, 15, 35),
		Secondary = Color3.fromRGB(37, 22, 52),
		Card = Color3.fromRGB(48, 29, 66),
		Accent = Color3.fromRGB(155, 85, 255),
		Accent2 = Color3.fromRGB(185, 125, 255),
		Text = Color3.fromRGB(245, 238, 255),
		SubText = Color3.fromRGB(180, 160, 200),
		Border = Color3.fromRGB(75, 50, 95),
		Danger = Color3.fromRGB(235, 80, 100),
		Success = Color3.fromRGB(75, 210, 135),
	},

	Green = {
		Background = Color3.fromRGB(12, 28, 22),
		Secondary = Color3.fromRGB(18, 42, 32),
		Card = Color3.fromRGB(25, 55, 42),
		Accent = Color3.fromRGB(50, 200, 120),
		Accent2 = Color3.fromRGB(90, 230, 155),
		Text = Color3.fromRGB(235, 255, 245),
		SubText = Color3.fromRGB(155, 195, 175),
		Border = Color3.fromRGB(45, 85, 65),
		Danger = Color3.fromRGB(235, 80, 80),
		Success = Color3.fromRGB(65, 220, 130),
	},
}

local CurrentTheme = Themes[Settings.Theme]

--==================================================
-- HELPERS
--==================================================

local function tween(object, properties, duration)
	local info = TweenInfo.new(
		duration or 0.2,
		Enum.EasingStyle.Quad,
		Enum.EasingDirection.Out
	)

	TweenService:Create(object, info, properties):Play()
end

local function round(object, radius)
	local corner = Instance.new("UICorner")
	corner.CornerRadius = UDim.new(0, radius or 8)
	corner.Parent = object
	return corner
end

local function addStroke(object, color, thickness)
	local s = Instance.new("UIStroke")
	s.Color = color
	s.Thickness = thickness or 1
	s.Transparency = 0.3
	s.Parent = object
	return s
end

local function create(className, properties, parent)
	local object = Instance.new(className)

	for property, value in pairs(properties or {}) do
		object[property] = value
	end

	object.Parent = parent
	return object
end

--==================================================
-- CHARACTER HELPERS
--==================================================

local animationConnection
local characterConnection

local function getCharacter()
	return player.Character
end

local function getHumanoid()
	local character = getCharacter()

	if not character then
		return nil
	end

	return character:FindFirstChildOfClass("Humanoid")
end

local function getAnimator()
	local humanoid = getHumanoid()

	if not humanoid then
		return nil
	end

	return humanoid:FindFirstChildOfClass("Animator")
end

--==================================================
-- WALK/RUN DETECTION
--==================================================

local function animationObjectMatchesTrack(animationObject, track)
	if not animationObject:IsA("Animation") then
		return false
	end

	if not track.Animation then
		return false
	end

	if animationObject.AnimationId == "" then
		return false
	end

	return animationObject.AnimationId == track.Animation.AnimationId
end

local function isDefaultMovementAnimation(track)
	local character = getCharacter()

	if not character then
		return false
	end

	local animate = character:FindFirstChild("Animate")

	if not animate then
		return false
	end

	-- Roblox default walking animations
	local walkFolder = animate:FindFirstChild("walk")

	if walkFolder then
		for _, object in ipairs(walkFolder:GetDescendants()) do
			if animationObjectMatchesTrack(object, track) then
				return true
			end
		end
	end

	-- Roblox default running animations
	local runFolder = animate:FindFirstChild("run")

	if runFolder then
		for _, object in ipairs(runFolder:GetDescendants()) do
			if animationObjectMatchesTrack(object, track) then
				return true
			end
		end
	end

	return false
end

local function isWalkingAnimation(track)
	local name = string.lower(track.Name or "")

	-- Common names used by custom animation systems.
	if string.find(name, "walk", 1, true) then
		return true
	end

	if string.find(name, "run", 1, true) then
		return true
	end

	-- Check Roblox's Animate script.
	if isDefaultMovementAnimation(track) then
		return true
	end

	return false
end

--==================================================
-- ANIMATION CONTROL
--==================================================

local function stopNonWalkingAnimations()
	local animator = getAnimator()

	if not animator then
		return
	end

	for _, track in ipairs(animator:GetPlayingAnimationTracks()) do
		if not isWalkingAnimation(track) then
			pcall(function()
				track:Stop(0)
			end)
		end
	end
end

local function disconnectAnimationListener()
	if animationConnection then
		animationConnection:Disconnect()
		animationConnection = nil
	end
end

local function connectAnimationListener()
	disconnectAnimationListener()

	local animator = getAnimator()

	if not animator then
		return
	end

	animationConnection = animator.AnimationPlayed:Connect(function(track)
		if not Settings.NonWalkingAnimationsDisabled then
			return
		end

		if isWalkingAnimation(track) then
			return
		end

		task.defer(function()
			if Settings.NonWalkingAnimationsDisabled then
				pcall(function()
					track:Stop(0)
				end)
			end
		end)
	end)
end

local function disableNonWalkingAnimations()
	Settings.NonWalkingAnimationsDisabled = true

	stopNonWalkingAnimations()
	connectAnimationListener()
end

local function enableAllAnimations()
	Settings.NonWalkingAnimationsDisabled = false

	disconnectAnimationListener()
end

local function toggleNonWalkingAnimations()
	if Settings.NonWalkingAnimationsDisabled then
		enableAllAnimations()
	else
		disableNonWalkingAnimations()
	end
end

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

local gui = create("ScreenGui", {
	Name = "AnimationControlCenter",
	ResetOnSpawn = false,
	ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
}, playerGui)

local main = create("Frame", {
	Name = "Main",
	Size = UDim2.fromOffset(650, 430),
	Position = UDim2.new(0.5, -325, 0.5, -215),
	BackgroundColor3 = CurrentTheme.Background,
	BorderSizePixel = 0,
	ClipsDescendants = true,
}, gui)

round(main, 14)
addStroke(main, CurrentTheme.Border, 1)

local uiScale = create("UIScale", {
	Scale = Settings.UIScale,
}, main)

--==================================================
-- TOP BAR
--==================================================

local topBar = create("Frame", {
	Name = "TopBar",
	Size = UDim2.new(1, 0, 0, 58),
	BackgroundColor3 = CurrentTheme.Secondary,
	BorderSizePixel = 0,
}, main)

local title = create("TextLabel", {
	Size = UDim2.new(0, 350, 0, 25),
	Position = UDim2.fromOffset(20, 7),
	BackgroundTransparency = 1,
	Text = "Animation Control Center",
	TextColor3 = CurrentTheme.Text,
	Font = Enum.Font.GothamBold,
	TextSize = 18,
	TextXAlignment = Enum.TextXAlignment.Left,
}, topBar)

local subtitle = create("TextLabel", {
	Size = UDim2.new(0, 350, 0, 18),
	Position = UDim2.fromOffset(21, 32),
	BackgroundTransparency = 1,
	Text = "Walking animations stay active",
	TextColor3 = CurrentTheme.SubText,
	Font = Enum.Font.Gotham,
	TextSize = 10,
	TextXAlignment = Enum.TextXAlignment.Left,
}, topBar)

local minimizeButton = create("TextButton", {
	Size = UDim2.fromOffset(38, 38),
	Position = UDim2.new(1, -92, 0, 10),
	BackgroundColor3 = CurrentTheme.Card,
	Text = "−",
	TextColor3 = CurrentTheme.Text,
	Font = Enum.Font.GothamBold,
	TextSize = 22,
	AutoButtonColor = false,
}, topBar)

round(minimizeButton, 8)

local closeButton = create("TextButton", {
	Size = UDim2.fromOffset(38, 38),
	Position = UDim2.new(1, -48, 0, 10),
	BackgroundColor3 = CurrentTheme.Card,
	Text = "×",
	TextColor3 = CurrentTheme.Text,
	Font = Enum.Font.GothamBold,
	TextSize = 24,
	AutoButtonColor = false,
}, topBar)

round(closeButton, 8)

--==================================================
-- SIDEBAR
--==================================================

local sidebar = create("Frame", {
	Name = "Sidebar",
	Size = UDim2.new(0, 150, 1, -58),
	Position = UDim2.fromOffset(0, 58),
	BackgroundColor3 = CurrentTheme.Secondary,
	BorderSizePixel = 0,
}, main)

create("UIPadding", {
	PaddingTop = UDim.new(0, 15),
	PaddingLeft = UDim.new(0, 10),
	PaddingRight = UDim.new(0, 10),
}, sidebar)

create("UIListLayout", {
	Padding = UDim.new(0, 6),
	HorizontalAlignment = Enum.HorizontalAlignment.Center,
	SortOrder = Enum.SortOrder.LayoutOrder,
}, sidebar)

--==================================================
-- CONTENT
--==================================================

local content = create("Frame", {
	Name = "Content",
	Size = UDim2.new(1, -150, 1, -58),
	Position = UDim2.fromOffset(150, 58),
	BackgroundColor3 = CurrentTheme.Background,
	BorderSizePixel = 0,
}, main)

--==================================================
-- NOTIFICATIONS
--==================================================

local notificationHolder = create("Frame", {
	Name = "Notifications",
	Size = UDim2.fromOffset(320, 400),
	Position = UDim2.new(1, -330, 0, 15),
	BackgroundTransparency = 1,
}, gui)

create("UIListLayout", {
	VerticalAlignment = Enum.VerticalAlignment.Bottom,
	HorizontalAlignment = Enum.HorizontalAlignment.Right,
	Padding = UDim.new(0, 8),
}, notificationHolder)

local function notify(message, color)
	if not Settings.Notifications then
		return
	end

	local notification = create("Frame", {
		Size = UDim2.fromOffset(300, 55),
		BackgroundColor3 = CurrentTheme.Card,
		BorderSizePixel = 0,
	}, notificationHolder)

	round(notification, 10)
	addStroke(notification, color or CurrentTheme.Accent, 1)

	create("TextLabel", {
		Size = UDim2.new(1, -20, 1, 0),
		Position = UDim2.fromOffset(10, 0),
		BackgroundTransparency = 1,
		Text = message,
		TextColor3 = CurrentTheme.Text,
		Font = Enum.Font.GothamMedium,
		TextSize = 13,
		TextWrapped = true,
		TextXAlignment = Enum.TextXAlignment.Left,
	}, notification)

	notification.Position = UDim2.new(1, 30, 0, 0)

	tween(notification, {
		Position = UDim2.new(1, 0, 0, 0)
	}, 0.25)

	task.delay(2.5, function()
		if notification.Parent then
			tween(notification, {
				Position = UDim2.new(1, 30, 0, 0)
			}, 0.25)

			task.wait(0.3)

			if notification.Parent then
				notification:Destroy()
			end
		end
	end)
end

--==================================================
-- TABS
--==================================================

local tabs = {}
local pages = {}

local function createTab(name, icon)
	local button = create("TextButton", {
		Name = name .. "Tab",
		Size = UDim2.new(1, 0, 0, 42),
		BackgroundColor3 = CurrentTheme.Secondary,
		BackgroundTransparency = 1,
		Text = icon .. "  " .. name,
		TextColor3 = CurrentTheme.SubText,
		Font = Enum.Font.GothamMedium,
		TextSize = 13,
		TextXAlignment = Enum.TextXAlignment.Left,
		AutoButtonColor = false,
	}, sidebar)

	round(button, 8)

	create("UIPadding", {
		PaddingLeft = UDim.new(0, 14),
	}, button)

	local page = create("ScrollingFrame", {
		Name = name .. "Page",
		Size = UDim2.new(1, -30, 1, -30),
		Position = UDim2.fromOffset(15, 15),
		BackgroundTransparency = 1,
		BorderSizePixel = 0,
		ScrollBarThickness = 4,
		ScrollBarImageColor3 = CurrentTheme.Accent,
		CanvasSize = UDim2.new(0, 0, 0, 0),
		AutomaticCanvasSize = Enum.AutomaticSize.Y,
		Visible = false,
	}, content)

	create("UIListLayout", {
		Padding = UDim.new(0, 12),
		SortOrder = Enum.SortOrder.LayoutOrder,
	}, page)

	tabs[name] = button
	pages[name] = page

	return button, page
end

--==================================================
-- UI COMPONENTS
--==================================================

local function createSectionTitle(parent, text)
	return create("TextLabel", {
		Size = UDim2.new(1, 0, 0, 28),
		BackgroundTransparency = 1,
		Text = text,
		TextColor3 = CurrentTheme.Text,
		Font = Enum.Font.GothamBold,
		TextSize = 16,
		TextXAlignment = Enum.TextXAlignment.Left,
	}, parent)
end

local function createCard(parent, height)
	local card = create("Frame", {
		Size = UDim2.new(1, 0, 0, height or 70),
		BackgroundColor3 = CurrentTheme.Card,
		BorderSizePixel = 0,
	}, parent)

	round(card, 10)
	addStroke(card, CurrentTheme.Border, 1)

	return card
end

local function createToggle(parent, titleText, description, initial, callback)
	local card = createCard(parent, 70)

	create("TextLabel", {
		Size = UDim2.new(1, -100, 0, 24),
		Position = UDim2.fromOffset(15, 10),
		BackgroundTransparency = 1,
		Text = titleText,
		TextColor3 = CurrentTheme.Text,
		Font = Enum.Font.GothamMedium,
		TextSize = 13,
		TextXAlignment = Enum.TextXAlignment.Left,
	}, card)

	create("TextLabel", {
		Size = UDim2.new(1, -100, 0, 25),
		Position = UDim2.fromOffset(15, 34),
		BackgroundTransparency = 1,
		Text = description,
		TextColor3 = CurrentTheme.SubText,
		Font = Enum.Font.Gotham,
		TextSize = 10,
		TextXAlignment = Enum.TextXAlignment.Left,
		TextWrapped = true,
	}, card)

	local toggle = create("TextButton", {
		Size = UDim2.fromOffset(52, 28),
		Position = UDim2.new(1, -67, 0.5, -14),
		BackgroundColor3 = initial and CurrentTheme.Success or CurrentTheme.Border,
		Text = "",
		AutoButtonColor = false,
	}, card)

	round(toggle, 14)

	local knob = create("Frame", {
		Size = UDim2.fromOffset(22, 22),
		Position = initial
			and UDim2.new(1, -25, 0.5, -11)
			or UDim2.new(0, 3, 0.5, -11),
		BackgroundColor3 = Color3.fromRGB(255, 255, 255),
		BorderSizePixel = 0,
	}, toggle)

	round(knob, 50)

	local state = initial

	local function setState(value)
		state = value

		tween(toggle, {
			BackgroundColor3 = state
				and CurrentTheme.Success
				or CurrentTheme.Border
		})

		tween(knob, {
			Position = state
				and UDim2.new(1, -25, 0.5, -11)
				or UDim2.new(0, 3, 0.5, -11)
		})

		if callback then
			callback(state)
		end
	end

	toggle.MouseButton1Click:Connect(function()
		setState(not state)
	end)

	return card, setState
end

local function createButton(parent, text, callback, color)
	local normalColor = color or CurrentTheme.Accent

	local button = create("TextButton", {
		Size = UDim2.new(1, 0, 0, 50),
		BackgroundColor3 = normalColor,
		Text = text,
		TextColor3 = Color3.fromRGB(255, 255, 255),
		Font = Enum.Font.GothamBold,
		TextSize = 13,
		AutoButtonColor = false,
	}, parent)

	round(button, 9)

	button.MouseEnter:Connect(function()
		tween(button, {
			BackgroundColor3 = CurrentTheme.Accent2
		})
	end)

	button.MouseLeave:Connect(function()
		tween(button, {
			BackgroundColor3 = normalColor
		})
	end)

	button.MouseButton1Click:Connect(callback)

	return button
end

--==================================================
-- CONTROL TAB
--==================================================

local controlTab, controlPage = createTab("Control", "●")

createSectionTitle(controlPage, "Animation Control")

local animationCard = createCard(controlPage, 115)

local animationTitle = create("TextLabel", {
	Size = UDim2.new(1, -160, 0, 25),
	Position = UDim2.fromOffset(15, 12),
	BackgroundTransparency = 1,
	Text = "Non-Walking Animation System",
	TextColor3 = CurrentTheme.Text,
	Font = Enum.Font.GothamBold,
	TextSize = 15,
	TextXAlignment = Enum.TextXAlignment.Left,
}, animationCard)

local animationStatus = create("TextLabel", {
	Size = UDim2.new(1, -160, 0, 45),
	Position = UDim2.fromOffset(15, 42),
	BackgroundTransparency = 1,
	Text = "All animations are currently allowed.",
	TextColor3 = CurrentTheme.SubText,
	Font = Enum.Font.Gotham,
	TextSize = 11,
	TextWrapped = true,
	TextXAlignment = Enum.TextXAlignment.Left,
}, animationCard)

local animationToggle = create("TextButton", {
	Size = UDim2.fromOffset(120, 40),
	Position = UDim2.new(1, -135, 0.5, -20),
	BackgroundColor3 = CurrentTheme.Accent,
	Text = "BLOCK",
	TextColor3 = Color3.fromRGB(255, 255, 255),
	Font = Enum.Font.GothamBold,
	TextSize = 12,
	AutoButtonColor = false,
}, animationCard)

round(animationToggle, 8)

local function updateAnimationButton()
	if Settings.NonWalkingAnimationsDisabled then
		animationToggle.Text = "ALLOW ALL"
		animationToggle.BackgroundColor3 = CurrentTheme.Success

		animationStatus.Text =
			"Non-walking animations are blocked.\nWalking and running animations remain active."

		animationStatus.TextColor3 = CurrentTheme.Success
	else
		animationToggle.Text = "BLOCK"
		animationToggle.BackgroundColor3 = CurrentTheme.Accent

		animationStatus.Text =
			"All animations are currently allowed.\nWalking, jumping, idle, emotes, etc. can play."

		animationStatus.TextColor3 = CurrentTheme.SubText
	end
end

animationToggle.MouseButton1Click:Connect(function()
	toggleNonWalkingAnimations()
	updateAnimationButton()

	if Settings.NonWalkingAnimationsDisabled then
		notify(
			"Non-walking animations blocked. Walking remains enabled.",
			CurrentTheme.Success
		)
	else
		notify(
			"All animations are allowed again.",
			CurrentTheme.Accent
		)
	end
end)

createButton(controlPage, "Stop Non-Walking Animations Now", function()
	stopNonWalkingAnimations()

	notify(
		"Current non-walking animations stopped.",
		CurrentTheme.Accent
	)
end)

createToggle(
	controlPage,
	"Block Non-Walking Animations",
	"Blocks idle, jump, fall, climb, swim, emotes and other animations while allowing walking/running.",
	Settings.NonWalkingAnimationsDisabled,
	function(state)
		if state then
			disableNonWalkingAnimations()
		else
			enableAllAnimations()
		end

		updateAnimationButton()
	end
)

createSectionTitle(controlPage, "Quick Actions")

createButton(controlPage, "Allow All Animations", function()
	enableAllAnimations()
	updateAnimationButton()

	notify(
		"All animations have been enabled.",
		CurrentTheme.Success
	)
end)

--==================================================
-- SETTINGS TAB
--==================================================

local settingsTab, settingsPage = createTab("Settings", "⚙")

createSectionTitle(settingsPage, "General Settings")

createToggle(
	settingsPage,
	"Notifications",
	"Show popup notifications when actions are performed.",
	Settings.Notifications,
	function(state)
		Settings.Notifications = state
	end
)

createToggle(
	settingsPage,
	"Block On Respawn",
	"Automatically block non-walking animations when your character respawns.",
	Settings.AutoDisableOnSpawn,
	function(state)
		Settings.AutoDisableOnSpawn = state
	end
)

local scaleCard = createCard(settingsPage, 75)

create("TextLabel", {
	Size = UDim2.new(0.5, 0, 0, 25),
	Position = UDim2.fromOffset(15, 10),
	BackgroundTransparency = 1,
	Text = "UI Scale",
	TextColor3 = CurrentTheme.Text,
	Font = Enum.Font.GothamMedium,
	TextSize = 13,
	TextXAlignment = Enum.TextXAlignment.Left,
}, scaleCard)

local scaleValue = create("TextLabel", {
	Size = UDim2.new(0.5, 0, 0, 20),
	Position = UDim2.fromOffset(15, 35),
	BackgroundTransparency = 1,
	Text = "100%",
	TextColor3 = CurrentTheme.SubText,
	Font = Enum.Font.Gotham,
	TextSize = 10,
	TextXAlignment = Enum.TextXAlignment.Left,
}, scaleCard)

local scaleMinus = create("TextButton", {
	Size = UDim2.fromOffset(35, 35),
	Position = UDim2.new(1, -85, 0.5, -17),
	BackgroundColor3 = CurrentTheme.Secondary,
	Text = "−",
	TextColor3 = CurrentTheme.Text,
	Font = Enum.Font.GothamBold,
	TextSize = 18,
	AutoButtonColor = false,
}, scaleCard)

round(scaleMinus, 7)

local scalePlus = create("TextButton", {
	Size = UDim2.fromOffset(35, 35),
	Position = UDim2.new(1, -45, 0.5, -17),
	BackgroundColor3 = CurrentTheme.Secondary,
	Text = "+",
	TextColor3 = CurrentTheme.Text,
	Font = Enum.Font.GothamBold,
	TextSize = 18,
	AutoButtonColor = false,
}, scaleCard)

round(scalePlus, 7)

local function updateScale()
	uiScale.Scale = Settings.UIScale
	scaleValue.Text = math.floor(Settings.UIScale * 100) .. "%"
end

scaleMinus.MouseButton1Click:Connect(function()
	Settings.UIScale = math.max(0.75, Settings.UIScale - 0.05)
	updateScale()
end)

scalePlus.MouseButton1Click:Connect(function()
	Settings.UIScale = math.min(1.5, Settings.UIScale + 0.05)
	updateScale()
end)

--==================================================
-- APPEARANCE TAB
--==================================================

local appearanceTab, appearancePage = createTab("Appearance", "◆")

createSectionTitle(appearancePage, "Themes")

local themeNames = {
	"Dark",
	"Blue",
	"Purple",
	"Green",
}

for _, themeName in ipairs(themeNames) do
	local theme = Themes[themeName]

	local button = create("TextButton", {
		Size = UDim2.new(1, 0, 0, 55),
		BackgroundColor3 = theme.Card,
		Text = "     " .. themeName,
		TextColor3 = theme.Text,
		Font = Enum.Font.GothamBold,
		TextSize = 13,
		TextXAlignment = Enum.TextXAlignment.Left,
		AutoButtonColor = false,
	}, appearancePage)

	round(button, 9)

	local indicator = create("Frame", {
		Size = UDim2.fromOffset(7, 35),
		Position = UDim2.fromOffset(10, 10),
		BackgroundColor3 = theme.Accent,
		BorderSizePixel = 0,
	}, button)

	round(indicator, 5)

	button.MouseButton1Click:Connect(function()
		Settings.Theme = themeName
		CurrentTheme = Themes[themeName]

		main.BackgroundColor3 = CurrentTheme.Background
		content.BackgroundColor3 = CurrentTheme.Background
		sidebar.BackgroundColor3 = CurrentTheme.Secondary
		topBar.BackgroundColor3 = CurrentTheme.Secondary

		title.TextColor3 = CurrentTheme.Text
		subtitle.TextColor3 = CurrentTheme.SubText

		updateAnimationButton()

		notify(
			"Theme changed to " .. themeName .. ".",
			CurrentTheme.Accent
		)
	end)
end

--==================================================
-- HOTKEY TAB
--==================================================

local hotkeyTab, hotkeyPage = createTab("Hotkeys", "⌨")

createSectionTitle(hotkeyPage, "Keyboard Shortcuts")

local keybindCard = createCard(hotkeyPage, 90)

create("TextLabel", {
	Size = UDim2.new(1, -150, 0, 25),
	Position = UDim2.fromOffset(15, 12),
	BackgroundTransparency = 1,
	Text = "Toggle GUI",
	TextColor3 = CurrentTheme.Text,
	Font = Enum.Font.GothamMedium,
	TextSize = 13,
	TextXAlignment = Enum.TextXAlignment.Left,
}, keybindCard)

create("TextLabel", {
	Size = UDim2.new(1, -150, 0, 25),
	Position = UDim2.fromOffset(15, 40),
	BackgroundTransparency = 1,
	Text = "Press your chosen key to show/hide the interface.",
	TextColor3 = CurrentTheme.SubText,
	Font = Enum.Font.Gotham,
	TextSize = 10,
	TextXAlignment = Enum.TextXAlignment.Left,
}, keybindCard)

local keyButton = create("TextButton", {
	Size = UDim2.fromOffset(110, 38),
	Position = UDim2.new(1, -125, 0.5, -19),
	BackgroundColor3 = CurrentTheme.Accent,
	Text = Settings.Keybind.Name,
	TextColor3 = Color3.fromRGB(255, 255, 255),
	Font = Enum.Font.GothamBold,
	TextSize = 12,
	AutoButtonColor = false,
}, keybindCard)

round(keyButton, 8)

local waitingForKey = false

keyButton.MouseButton1Click:Connect(function()
	waitingForKey = true
	keyButton.Text = "PRESS KEY..."
	keyButton.BackgroundColor3 = CurrentTheme.Success
end)

--==================================================
-- ABOUT TAB
--==================================================

local aboutTab, aboutPage = createTab("About", "ⓘ")

createSectionTitle(aboutPage, "Animation Control Center")

local aboutCard = createCard(aboutPage, 190)

create("TextLabel", {
	Size = UDim2.new(1, -30, 1, -20),
	Position = UDim2.fromOffset(15, 10),
	BackgroundTransparency = 1,
	Text =
		"Client-side animation controller\n\n" ..
		"• Walking animations remain active\n" ..
		"• Running animations remain active\n" ..
		"• Idle animations can be blocked\n" ..
		"• Jump animations can be blocked\n" ..
		"• Fall animations can be blocked\n" ..
		"• Climb animations can be blocked\n" ..
		"• Swim animations can be blocked\n" ..
		"• Emotes and other animation tracks can be blocked\n\n" ..
		"All changes made by this LocalScript affect your local client.",
	TextColor3 = CurrentTheme.SubText,
	Font = Enum.Font.Gotham,
	TextSize = 12,
	TextWrapped = true,
	TextXAlignment = Enum.TextXAlignment.Left,
	TextYAlignment = Enum.TextYAlignment.Top,
}, aboutCard)

--==================================================
-- TAB SWITCHING
--==================================================

local function selectTab(tabName)
	for name, button in pairs(tabs) do
		if name == tabName then
			button.BackgroundTransparency = 0
			button.BackgroundColor3 = CurrentTheme.Card
			button.TextColor3 = CurrentTheme.Text
		else
			button.BackgroundTransparency = 1
			button.BackgroundColor3 = CurrentTheme.Secondary
			button.TextColor3 = CurrentTheme.SubText
		end
	end

	for name, page in pairs(pages) do
		page.Visible = name == tabName
	end
end

for name, button in pairs(tabs) do
	button.MouseButton1Click:Connect(function()
		selectTab(name)
	end)
end

selectTab("Control")

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

local dragging = false
local dragStart
local startPosition

topBar.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

		input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then
				dragging = false
			end
		end)
	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

		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
end)

--==================================================
-- MINIMIZE
--==================================================

local minimized = false
local normalSize = UDim2.fromOffset(650, 430)

minimizeButton.MouseButton1Click:Connect(function()
	minimized = not minimized

	if minimized then
		minimizeButton.Text = "+"
		main.Size = UDim2.fromOffset(650, 58)
	else
		minimizeButton.Text = "−"
		main.Size = normalSize
	end
end)

--==================================================
-- CLOSE
--==================================================

closeButton.MouseButton1Click:Connect(function()
	main.Visible = false
end)

--==================================================
-- KEYBOARD INPUT
--==================================================

UserInputService.InputBegan:Connect(function(input, processed)
	if processed then
		return
	end

	if waitingForKey then
		if input.UserInputType == Enum.UserInputType.Keyboard then
			Settings.Keybind = input.KeyCode
			keyButton.Text = input.KeyCode.Name
			keyButton.BackgroundColor3 = CurrentTheme.Accent

			waitingForKey = false

			notify(
				"GUI keybind changed to " .. input.KeyCode.Name .. ".",
				CurrentTheme.Success
			)
		end

		return
	end

	if input.UserInputType == Enum.UserInputType.Keyboard then
		if input.KeyCode == Settings.Keybind then
			main.Visible = not main.Visible
		end
	end
end)

--==================================================
-- CHARACTER RESPAWN
--==================================================

if characterConnection then
	characterConnection:Disconnect()
end

characterConnection = player.CharacterAdded:Connect(function()
	task.wait(0.5)

	-- The Animator may not exist immediately after spawning.
	local character = player.Character

	if character then
		local humanoid = character:WaitForChild("Humanoid", 5)

		if humanoid then
			humanoid:WaitForChild("Animator", 5)
		end
	end

	if Settings.NonWalkingAnimationsDisabled
		or Settings.AutoDisableOnSpawn then

		disableNonWalkingAnimations()
		updateAnimationButton()
	end
end)

--==================================================
-- INITIALIZE
--==================================================

updateAnimationButton()
updateScale()

notify(
	"Animation Control Center loaded.",
	CurrentTheme.Success
)

Features & Information

Yes, someone finally made an animation disabling script! consider liking cause it helps a lot :D
#free#mobile friendly#open source#useful#universal

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts