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!