
KeylessUniversal

local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local PlayerGui = Player:WaitForChild("PlayerGui")
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "AnimationLogger"
ScreenGui.Parent = PlayerGui
local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0.3, 0, 0.6, 0)
MainFrame.Position = UDim2.new(0.05, 0, 0.2, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
MainFrame.BorderSizePixel = 0
MainFrame.Parent = ScreenGui
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0.08, 0)
Title.Text = "ANIMATION LOGGER"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 16
Title.Parent = MainFrame
local RefreshButton = Instance.new("TextButton")
RefreshButton.Size = UDim2.new(0.15, 0, 0.08, 0)
RefreshButton.Position = UDim2.new(0.85, 0, 0, 0)
RefreshButton.Text = "🔃"
RefreshButton.TextSize = 18
RefreshButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
RefreshButton.Parent = MainFrame
local ScrollFrame = Instance.new("ScrollingFrame")
ScrollFrame.Size = UDim2.new(1, 0, 0.92, 0)
ScrollFrame.Position = UDim2.new(0, 0, 0.08, 0)
ScrollFrame.BackgroundTransparency = 1
ScrollFrame.ScrollBarThickness = 6
ScrollFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y
ScrollFrame.Parent = MainFrame
local UIListLayout = Instance.new("UIListLayout")
UIListLayout.Padding = UDim.new(0, 5)
UIListLayout.Parent = ScrollFrame
local AnimationTracker = {
ActiveAnimations = {},
TrackedAnimations = {}
}
function AnimationTracker:ScanForAnimations()
self.TrackedAnimations = {}
for _, humanoid in ipairs(workspace:GetDescendants()) do
if humanoid:IsA("Humanoid") then
local animator = humanoid:FindFirstChildOfClass("Animator")
if animator then
for _, track in ipairs(animator:GetPlayingAnimationTracks()) do
table.insert(self.TrackedAnimations, {
Animation = track.Animation,
Track = track
})
end
end
end
end
for _, animController in ipairs(workspace:GetDescendants()) do
if animController:IsA("AnimationController") then
local animator = animController:FindFirstChildOfClass("Animator")
if animator then
for _, track in ipairs(animator:GetPlayingAnimationTracks()) do
table.insert(self.TrackedAnimations, {
Animation = track.Animation,
Track = track
})
end
end
end
end
for _, animation in ipairs(game:GetDescendants()) do
if animation:IsA("Animation") then
local alreadyTracked = false
for _, tracked in ipairs(self.TrackedAnimations) do
if tracked.Animation == animation then
alreadyTracked = true
break
end
end
if not alreadyTracked then
table.insert(self.TrackedAnimations, {
Animation = animation,
Track = nil
})
end
end
end
return self.TrackedAnimations
end
function AnimationTracker:PlayAnimation(animationData)
local humanoid = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid")
if not humanoid then return false end
local animator = humanoid:FindFirstChildOfClass("Animator")
if not animator then return false end
if self.ActiveAnimations[animationData.Animation.AnimationId] then
self.ActiveAnimations[animationData.Animation.AnimationId]:Stop()
self.ActiveAnimations[animationData.Animation.AnimationId] = nil
return false
else
local newTrack = animator:LoadAnimation(animationData.Animation)
newTrack:Play()
self.ActiveAnimations[animationData.Animation.AnimationId] = newTrack
return true
end
end
local function createAnimationButton(animationData)
local buttonFrame = Instance.new("Frame")
buttonFrame.Size = UDim2.new(0.95, 0, 0, 60)
buttonFrame.Position = UDim2.new(0.025, 0, 0, 0)
buttonFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
buttonFrame.BorderSizePixel = 0
buttonFrame.Parent = ScrollFrame
local nameLabel = Instance.new("TextLabel")
nameLabel.Size = UDim2.new(0.7, 0, 0.5, 0)
nameLabel.Position = UDim2.new(0, 10, 0, 5)
nameLabel.Text = animationData.Animation.Name ~= "" and animationData.Animation.Name or "Unnamed Animation"
nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
nameLabel.TextXAlignment = Enum.TextXAlignment.Left
nameLabel.BackgroundTransparency = 1
nameLabel.Font = Enum.Font.Gotham
nameLabel.TextSize = 14
nameLabel.Parent = buttonFrame
local idLabel = Instance.new("TextLabel")
idLabel.Size = UDim2.new(0.7, 0, 0.5, 0)
idLabel.Position = UDim2.new(0, 10, 0.5, -5)
idLabel.Text = "ID: " .. string.sub(animationData.Animation.AnimationId, 1, 20) .. "..."
idLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
idLabel.TextXAlignment = Enum.TextXAlignment.Left
idLabel.TextSize = 12
idLabel.BackgroundTransparency = 1
idLabel.Font = Enum.Font.Gotham
idLabel.Parent = buttonFrame
local toggleButton = Instance.new("TextButton")
toggleButton.Size = UDim2.new(0.2, 0, 0.6, 0)
toggleButton.Position = UDim2.new(0.75, 0, 0.2, 0)
toggleButton.Text = "OFF"
toggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleButton.Font = Enum.Font.GothamBold
toggleButton.TextSize = 14
toggleButton.Parent = buttonFrame
local function updateButtonState(isPlaying)
if isPlaying then
toggleButton.Text = "ON"
toggleButton.BackgroundColor3 = Color3.fromRGB(80, 200, 80)
buttonFrame.BackgroundColor3 = Color3.fromRGB(60, 60, 80)
else
toggleButton.Text = "OFF"
toggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
buttonFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
end
end
toggleButton.MouseButton1Click:Connect(function()
local isPlaying = AnimationTracker:PlayAnimation(animationData)
updateButtonState(isPlaying)
end)
if AnimationTracker.ActiveAnimations[animationData.Animation.AnimationId] then
updateButtonState(true)
end
end
local function updateAnimationList()
for _, child in ipairs(ScrollFrame:GetChildren()) do
if child:IsA("Frame") then
child:Destroy()
end
end
local animations = AnimationTracker:ScanForAnimations()
for _, animData in ipairs(animations) do
createAnimationButton(animData)
end
end
updateAnimationList()
RefreshButton.MouseButton1Click:Connect(updateAnimationList)
Player.CharacterAdded:Connect(function(character)
for _, track in pairs(AnimationTracker.ActiveAnimations) do
track:Stop()
end
AnimationTracker.ActiveAnimations = {}
for _, child in ipairs(ScrollFrame:GetChildren()) do
if child:IsA("Frame") then
local toggleButton = child:FindFirstChildOfClass("TextButton")
if toggleButton then
toggleButton.Text = "OFF"
toggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
child.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
end
end
end
end)



the developer who didnt publish it:
dude its cool-
ai generated