local Torso = game.Players.LocalPlayer.Character:WaitForChild("Torso") local sound = Instance.new("Sound",Torso) sound.Volume=1 sound.Pitch=1 sound.Name="" sound.Looped=true sound.PlayOnRemove=false local player = game.Players.LocalPlayer local Format = "http://www.roblox.com/asset/?id=##ID##" local frame = script.Parent:WaitForChild("Frame") frame:WaitForChild("Play").MouseButton1Click:connect(function() local input = tonumber(frame:WaitForChild("Input").Text) if input then sound:Stop() sound.SoundId=Format:gsub("##ID##", tostring(input)) sound:Play() end end) frame:WaitForChild("Stop").MouseButton1Click:connect(function() sound:Stop() end)
Why will this not work? P.S. it is a Local script. And this is for a StarterGUI
When a LocalScript runs immediately, the Character
will likely not exist -- it takes time to load Characters (this is not the case in Test Solo, where scripts actually start a little late)
Thus you want to get the local player's Character something like this:
local player = game.Players.LocalPlayer -- the Character if it exists, or I'll wait: local character = player.Character or player.CharacterAdded:wait() local Torso = character:WaitForChild("Torso")