local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local plr = Players.LocalPlayer local char = plr.Character or plr.CharacterAdded:Wait() local head = char:WaitForChild("Head") local torso = char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") local neck = torso:WaitForChild("Neck") local face = head:FindFirstChild("face") if face then face:Destroy() end local sound = Instance.new("Sound") sound.Parent = head sound.Volume = 1 sound.Looped = true local gui = Instance.new("ScreenGui") gui.Name = "AudioUI" gui.ResetOnSpawn = false gui.Parent = plr:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 200, 0, 60) frame.Position = UDim2.new(0.5, -100, 0.5, -30) frame.BackgroundColor3 = Color3.fromRGB(120,120,120) frame.BorderSizePixel = 0 frame.Parent = gui local dragBar = Instance.new("TextLabel") dragBar.Size = UDim2.new(1, 0, 0, 20) dragBar.BackgroundColor3 = Color3.fromRGB(90,90,90) dragBar.Text = "Drag Me" dragBar.TextSize = 14 dragBar.TextColor3 = Color3.new(1,1,1) dragBar.Parent = frame dragBar.Active = true local box = Instance.new("TextBox") box.Size = UDim2.new(1, -10, 0, 30) box.Position = UDim2.new(0, 5, 0, 25) box.BackgroundColor3 = Color3.fromRGB(200,200,200) box.Text = "Enter Audio ID" box.ClearTextOnFocus = true box.Parent = frame box.FocusLost:Connect(function(enterPressed) if enterPressed then local id = box.Text:gsub("%D", "") if id ~= "" then sound:Stop() sound.SoundId = "rbxassetid://" .. id sound:Play() end end end) local dragging = false local dragStart local startPos dragBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) UIS.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart frame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) local function createPart(size, position) local part = Instance.new("Part") part.Size = Vector3.new(1,1,1) part.Anchored = false part.CanCollide = false part.BrickColor = BrickColor.new("Black") part.Parent = head local mesh = Instance.new("SpecialMesh") mesh.MeshType = Enum.MeshType.Sphere mesh.Scale = size mesh.Parent = part local weld = Instance.new("Weld") weld.Part0 = part weld.Part1 = head weld.C1 = position weld.Parent = part return mesh end local eye1m = createPart(Vector3.new(0.02,0.12,0.03), CFrame.new(-.17,.14,-.57)) local eye2m = createPart(Vector3.new(0.02,0.12,0.03), CFrame.new(.17,.14,-.57)) local mouthm = createPart(Vector3.new(.13,0.1,0.05), CFrame.new(0,-.25,-.6)) local ogsize = mouthm.Scale RunService.RenderStepped:Connect(function() if sound.IsPlaying then local loudness = sound.PlaybackLoudness mouthm.Scale = mouthm.Scale:Lerp( Vector3.new( ogsize.X + loudness/20000, loudness/1000, ogsize.Z ), 0.8 ) neck.C0 = neck.C0:Lerp( CFrame.new(0,1,0) * CFrame.Angles( math.rad(mouthm.Scale.Y * 100) - math.rad(90), 0, math.rad(180) ), 0.1 ) end end)