
KeylessUniversal

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



