Spinner is a model, and inside it there are the components of it: The spinner, the spinner holder and the signs around the edge showing which game mode is active. This is as to avoid multiple scripts having to communicate. Here is my script. This comes up with no errors or warnings, yet it does nothing to the TextLabels in the signs which are parts. Here is the script:

local spinner= script.Parent
local PickNum = 2
spinner.CanCollide = false
spinner.Anchored = true
while true do
	if PickNum == 2 then
		spinner.Transparency = 0
	elseif PickNum == 1 then
		spinner.Transparency = 1
	end		
	wait(120)
	PickNum = 3 - PickNum
	while true do
	if PickNum == 2 then
			script.Parent.Sign1.TextOfSign1.Text = 'The current gamemode is: Spinner!'
			script.Parent.Sign2.TextOfSign2.Text = 'The current gamemode is: Spinner!'
			script.Parent.Sign3.TextOfSign3.Text = 'The current gamemode is: Spinner!'
			script.Parent.Sign4.TextOfSign4.Text = 'The current gamemode is: Spinner!'
		elseif PickNum == 1 then
			script.Parent.Sign1.TextOfSign1.Text = 'The current gamemode is: Classic!'
			script.Parent.Sign2.TextOfSign2.Text = 'The current gamemode is: Classic!'
			script.Parent.Sign3.TextOfSign3.Text = 'The current gamemode is: Classic!'
			script.Parent.Sign4.TextOfSign4.Text = 'The current gamemode is: Classic!'
		end
	end
end

Again, this comes up with no warnings, no errors, however it does nothing.

Can anyone help?