I've spent multiple hours working on a few scripts that are supposed to Play songs from a pending list which users can paste sound Id's into, but if no users have a sound Id ready then the server automatically plays its own sound Id, but whenever I test the game, it only plays the server Id and none of the player's id's? Please Help!
Server Script Located In game.Workspace (Script Is Named "MusicScript"):
local RepStorage = game:GetService("ReplicatedStorage") local remote = Instance.new("RemoteEvent") local FirstTime = true local PendingNumber = 1 local PendingNumber2 = 1 local Pending = {} remote.Parent = RepStorage remote.OnServerEvent:Connect(function(player,name,TextboxText) wait() if game.Players[""..name..""].leaderstats["Dance Dollars"].Value >= 5 then game.Players[""..name..""].leaderstats["Dance Dollars"].Value = game.Players[""..name..""].leaderstats["Dance Dollars"].Value - 5 -----------------------Table Insert Here Pending[PendingNumber] = ""..name.."" local MusicFolder = Instance.new("Folder") MusicFolder.Name = "MusicFolder" MusicFolder.Parent = game.Players[""..name..""].PlayerGui ------------------------------- local SongId = Instance.new("NumberValue") SongId.Name = "SongId" SongId.Parent = MusicFolder SongId.Value = TextboxText -------------------------------- local Username = Instance.new("StringValue") Username.Name = "Username" Username.Parent = MusicFolder Username.Value = name ---------------------------------------- PendingNumber = PendingNumber + 1 end end) ------------------------------------------------------------------------------------------------ if FirstTime == true then FirstTime = false wait(1) Pending[PendingNumber] = "Server" local MusicFolder = Instance.new("Folder") MusicFolder.Name = "MusicFolder" MusicFolder.Parent = game.Workspace local SongId = Instance.new("NumberValue") SongId.Name = "SongId" SongId.Parent = MusicFolder SongId.Value = 143401149 local Username = Instance.new("StringValue") Username.Name = "Username" Username.Parent = MusicFolder Username.Value = "Server" PendingNumber = PendingNumber + 1 game.Workspace:WaitForChild("MusicGenerator") MusicFolder.Parent = game.Workspace.MusicGenerator game.Workspace:WaitForChild("NewSong") if game.Workspace.NewSong.Value == false then game.Workspace.NewSong.Value = true else game.Workspace.NewSong.Value = false end end ------------------------------------------------------------------------------------------------------- game.Workspace:WaitForChild("NewSong") game.Workspace.NewSong.Changed:connect(function() print("TEST") if Pending[PendingNumber2] == "" then Pending[PendingNumber2] = "Server" wait() Pending[PendingNumber] = "Server" local MusicFolder = Instance.new("Folder") MusicFolder.Name = "MusicFolder" MusicFolder.Parent = game.Workspace local SongId = Instance.new("NumberValue") SongId.Name = "SongId" SongId.Parent = MusicFolder SongId.Value = 143401149 local Username = Instance.new("StringValue") Username.Name = "Username" Username.Parent = MusicFolder Username.Value = "Server" PendingNumber = PendingNumber + 1 PendingNumber2 = PendingNumber2 + 1 ---------------------------------------------------- end if Pending[PendingNumber2] == "Server" then game.Workspace.MusicFolder.Parent = game.Workspace.MusicGenerator else game.Players[""..Pending[PendingNumber2]..""].PlayerGui.MusicFolder.Parent = game.Workspace.MusicGenerator PendingNumber2 = PendingNumber2 + 1 wait() end end)
Server Script Located In game.Workspace.MusicGenerator(The Script Is Named "Script" and it is inside of a part named "MusicGenerator"):
while wait() do local CurrentlyPlaying = script.Parent:WaitForChild("MusicFolder") local NewSound = Instance.new("Sound", workspace) NewSound.Parent = script.Parent NewSound.SoundId = "rbxassetid://"..CurrentlyPlaying.SongId.Value.."" NewSound.Volume = 0 NewSound:Play() for i = 1,50 do wait(0.1) NewSound.Volume = NewSound.Volume + 0.1 end wait(60) for i = 1,50 do wait(0.1) NewSound.Volume = NewSound.Volume - 0.1 end NewSound:Destroy() local NewSong = game.Workspace:WaitForChild("NewSong") if NewSong.Value == false then NewSong.Value = true else NewSong.Value = false end end
This Script Is A Local Script Located In StarterGui.MusicPlayer.MusicPlayer.PlaySound And Is Named "Local Script" (Its Parent, "PlaySound" Is A TextButton):
local remote = game:GetService("ReplicatedStorage"):WaitForChild("RemoteEvent") --wait for remote script.Parent.MouseButton1Click:Connect(function() local MusicFolderFound = game.Players.LocalPlayer.PlayerGui:FindFirstChild("MusicFolder") if not MusicFolderFound then remote:FireServer(script.Parent.Parent.Parent.Parent.Parent.Name,script.Parent.Parent.TextBox.Text) --send needed data end end)
There is a booleanvalue named "NewSong" in game.Workspace
I Don't Know Why It's Not Working, Please Help!