So, for my game, I have an event that fires in the main script that looks like this

event:FireAllClients("Class", "Explanation")

This should fire a tuple thingy in my localscript in ScreenGui that looks like this:

event.OnClientEvent:connect(function(...)
	local tuple = (...)
	if tuple[1] == "Results" then
		if tuple[2] == "Winner" then
			resultname.Text = "We have a winner!"
			resultname.TextColor3 = Color3.new(1, 0, 1)
			winner.Text = WinnerTag.Value .. " won the Blitz!"
		elseif tuple[2] == "No Winner" then
			resultname.Text = "Nobody Won!"
			resultname.TextColor3 = Color3.new(0, 170/255, 127/255)
			winner.Text = "Everyone was bloxxed in the Blitz! Better luck next time!"
		end
		results.Visible = true
		results.Position = UDim2.new(-.4, 0, 1, 0)
		results:TweenPosition(UDim2.new(.3, 0, .2, 0), "Out", "Quad", .5)
		wait(5)
		results:TweenPosition(UDim2.new(1, 0, 1, 0), "Out", "Quad", .5)
	elseif tuple[1] == "Class" then
		if tuple[2] == "Explanation" then
		explain.Visible = true
		explain.Position = UDim2.new(-.4, 0, 1, 0)
		explain:TweenPosition(UDim2.new(.3, 0, .2, 0), "Out", "Quad", .5)
		wait(5)
		explain:TweenPosition(UDim2.new(1, 0, 1, 0), "Out", "Quad", .5)
		end
	end
end)

The darn thing doesn't fire. Help! One more problem. So I have a bunch of stringvalues in ServerStorage. The mainscript changes the Status and Timer stringvalues to match a a gui should be displaying.

statustag.Value = "Blitz"
	timertag.Value = roundtimer -- this is a variable that has the amount of time for a blitz

and the code in my LocalScript looks like this...

function secondstomins(seconds)
	local minutes = math.floor(seconds / 60)
	local remainingseconds = seconds % 60
	if remainingseconds <= 0 then
		remainingseconds = "00"
	elseif remainingseconds <=9 then
		remainingseconds = "0" .. remainingseconds
	end
	return tostring(minutes) .. ":" .. remainingseconds
end

function update()
	if timertag.Value < 0 then
		statustitle.Text = statustag.Value 
	else 
		statustitle.Text = statustag.Value .. secondstomins(timertag.Value) 
	end
	if statustag.Value == "Intermission" then
			statustitle.TextColor3 = Color3.new(170/255, 0, 1)
	elseif statustag.Value == "Blitz" then
		statustitle.TextColor3 = Color3.new(1, 1, 0)
	elseif statustag.Value == "Loading Map" or statustag.Value == "Waiting for Players" then
		statustitle.TextColor3 = Color3.new(170/255, 0, 0)
	end
	
end

timertag.Changed:connect(function()
	local value = timertag.Value
	update()
end)

statustag.Changed:connect(function()
	local value = timertag.Value
	update()
end)

This doesn't work either! Please help me, it would be greatly appreciated! -Antharaziia