Hi there,

Just recently I've made a script that will play songs from a pre-defined playlist. It'll loop trough the playlist and will prioritize songs added by players who purchased a one-time custom song.

The script will play the first song on the playlist just fine. A player joins the game, music starts, all good. The moment I stop the song using Sound:Stop(), the script will play the next song instantly. However, the "Playing" value on the Sound is only checked on for the Server, and not the Client (?). I have no clue why/how, and I'm truly lost.

Any help would be much appreciated!

local SoundService = game:GetService("SoundService")

--/ Variables

local CurrentSong = 0
local SoundQueue = {}

--/ Functions

local function ContinuePlaylist()
	--/ Check queue for purchased songs first
	if #SoundQueue >= 1 then
		--/ Song in queue
	else
		--/ Play from playlist
		CurrentSong += 1
		for _, Sound in pairs (SoundStorage:GetChildren()) do
			if not Sound.IsPlaying then
				local PlaylistPosition = Sound:GetAttribute("PlaylistPosition")
				if PlaylistPosition == CurrentSong then
					Sound:Play()
					Sound.Stopped:Connect(function()
						ContinuePlaylist()
					end)
				end
			end
		end
	end
end

--/ Startup
ContinuePlaylist()