local Players = game:GetService("Players") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- Remove versão anterior para evitar duplicações local guiAntiga = playerGui:FindFirstChild("AnimSpeedGUI") if guiAntiga then guiAntiga:Destroy() end -- Tabela para guardar os IDs das animações de andar, correr, pular e idle local locomotionIds = {} local ultimaVelocidade = nil -- Função para mapear as animações do sistema de movimentação do personagem local function carregarLocomotionIds(character) locomotionIds = {} local animateScript = character:WaitForChild("Animate", 5) if animateScript then local pastasMovimento = {"idle", "walk", "run", "jump", "fall", "climb", "swim", "strafe"} for _, nomePasta in ipairs(pastasMovimento) do local pasta = animateScript:FindFirstChild(nomePasta) if pasta then for _, obj in ipairs(pasta:GetChildren()) do if obj:IsA("Animation") and obj.AnimationId ~= "" then locomotionIds[obj.AnimationId] = true end end end end end end -- Conecta ao personagem para registrar IDs e monitorar novas animações local function conectarCharacter(character) carregarLocomotionIds(character) local humanoid = character:WaitForChild("Humanoid", 5) if not humanoid then return end local animator = humanoid:WaitForChild("Animator", 5) if not animator then return end animator.AnimationPlayed:Connect(function(track) task.wait(0.05) local animId = track.Animation and track.Animation.AnimationId -- Aplica a velocidade salva caso uma nova animação de emote comece if not (animId and locomotionIds[animId]) and ultimaVelocidade then track:AdjustSpeed(ultimaVelocidade) end end) end if player.Character then conectarCharacter(player.Character) end player.CharacterAdded:Connect(conectarCharacter) -- ScreenGui Principal local screenGui = Instance.new("ScreenGui") screenGui.Name = "AnimSpeedGUI" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui -- Frame Principal Minimalista local mainFrame = Instance.new("Frame") mainFrame.Name = "AnimSpeedFrame" mainFrame.Size = UDim2.new(0, 230, 0, 140) mainFrame.Position = UDim2.new(0.5, 0, 0.4, 0) mainFrame.AnchorPoint = Vector2.new(0.5, 0.5) mainFrame.BackgroundColor3 = Color3.fromRGB(28, 28, 28) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.ClipsDescendants = true mainFrame.Parent = screenGui local frameCorner = Instance.new("UICorner") frameCorner.CornerRadius = UDim.new(0, 10) frameCorner.Parent = mainFrame local frameStroke = Instance.new("UIStroke") frameStroke.Color = Color3.fromRGB(55, 55, 55) frameStroke.Thickness = 1 frameStroke.Parent = mainFrame -- Título local title = Instance.new("TextLabel") title.Name = "Title" title.Size = UDim2.new(1, 0, 0, 32) title.BackgroundTransparency = 1 title.Text = "Velocidade do emote" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Font = Enum.Font.FredokaOne title.TextSize = 18 title.Parent = mainFrame -- Caixa de Entrada (TextBox) local inputBox = Instance.new("TextBox") inputBox.Name = "InputBox" inputBox.Size = UDim2.new(0.85, 0, 0, 35) inputBox.Position = UDim2.new(0.075, 0, 0.28, 0) inputBox.PlaceholderText = "Digite a velocidade..." inputBox.ClearTextOnFocus = false inputBox.Text = "" inputBox.TextColor3 = Color3.fromRGB(255, 255, 255) inputBox.BackgroundColor3 = Color3.fromRGB(45, 45, 45) inputBox.BorderSizePixel = 0 inputBox.Font = Enum.Font.FredokaOne inputBox.TextSize = 15 inputBox.Parent = mainFrame local inputCorner = Instance.new("UICorner") inputCorner.CornerRadius = UDim.new(0, 8) inputCorner.Parent = inputBox -- Permite APENAS números no campo de texto inputBox:GetPropertyChangedSignal("Text"):Connect(function() local textoFiltrado = inputBox.Text:gsub("[^%d.]", "") if inputBox.Text ~= textoFiltrado then inputBox.Text = textoFiltrado end end) -- Botão Submit (Aplicar) local submitButton = Instance.new("TextButton") submitButton.Name = "SubmitButton" submitButton.Size = UDim2.new(0.85, 0, 0, 35) submitButton.Position = UDim2.new(0.075, 0, 0.62, 0) submitButton.Text = "Aplicar" submitButton.BackgroundColor3 = Color3.fromRGB(0, 120, 255) submitButton.TextColor3 = Color3.fromRGB(255, 255, 255) submitButton.Font = Enum.Font.FredokaOne submitButton.TextSize = 16 submitButton.AutoButtonColor = true submitButton.Parent = mainFrame local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 8) buttonCorner.Parent = submitButton -- Função para alterar a velocidade dos emotes tocando no momento local function setAnimSpeed(speed) if not speed then return end ultimaVelocidade = speed local character = player.Character if character then local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then local animator = humanoid:FindFirstChildOfClass("Animator") if animator then for _, track in pairs(animator:GetPlayingAnimationTracks()) do local animId = track.Animation and track.Animation.AnimationId -- Altera a velocidade APENAS se não for uma animação do Animate script (idle/walk/run/jump) if not (animId and locomotionIds[animId]) then track:AdjustSpeed(speed) end end end end end end -- Função disparada para aplicar a alteração local function aplicarMudanca() local speed = tonumber(inputBox.Text) if speed then setAnimSpeed(speed) end end -- Clique no botão de Aplicar submitButton.MouseButton1Click:Connect(aplicarMudanca)