local sounds = { 877986525; 2734549871; } local PrimaryQueue = {} -- Player Chosen Songs. local SoundObj = workspace.MusicSystem function PlaySoundAndWait(SoundId) SoundObj.SoundId = "rbxassetid://"..SoundId print("Loading Sound...") repeat wait() until SoundObj.IsLoaded print("Loaded") SoundObj:Play() repeat wait() until not SoundObj.Playing -- Wait till over. end local PlaySecondary = sounds while wait(0.1) do if #PrimaryQueue ~= 0 then print("Play primary disregard current") -- Play primary, disregard current. PlaySoundAndWait(PrimaryQueue[1]) table.remove(PrimaryQueue,1) -- Remove from queue (played) else -- Refill Secondary Queue if empty. if #PlaySecondary == 0 then print("REFILL") PlaySecondary = sounds print(#sounds) continue end print(PlaySecondary[1]) PlaySoundAndWait(PlaySecondary[1]) table.remove(PlaySecondary,1) end end
When I refer to "REFILL" I mean line 26 where the list is refreshed. This script indefinitely checks if there's anything in the PrimaryQueue, if there is it plays that then removes it. If there's not it checks if the SecondaryQueue is empty, if so it refills it with "sounds". If it's not it plays the first sound then removes it. As a result all of this should create a music system, but for some reason when refilling, the sound list reads as empty. Even though it shouldn't be and has only been assigned a value once.
Thank you.