Script keeps returning nil to local script

i have a shop script in my game and its supposed to return true to a local script if a player does not have enough points for said shop item, and it works on all the types except for the “WaterRadio”, i do not understand why it is doing this, i checked again and again and its formatted like the other parts of the script but still nothing makes it return true like its supposed to, am i doing something wrong?

	elseif radioType == 'HeartRadio' then
		if player.leaderstats.Points.Value >= 500 and player.EquippedRadio.Value ~= 'HeartRadio' and player.OwnedRadios.OwnsHeart.Value ~= true then
			radio.BrickColor = BrickColor.new("White")
			player.OwnedRadios.OwnsHeart.Value = true
			player.EquippedRadio.Value = 'HeartRadio'
			player.leaderstats.Points.Value = player.leaderstats.Points.Value - 500
			radio.Mesh.TextureId = 'rbxassetid://618739089'
			local children = radio:GetChildren()
			for i, v in pairs(children) do
				if v:IsA("ParticleEmitter") then
					v:Destroy()
				end
				if v:IsA("Attachment") then
					v:Destroy()
				end
				if v:IsA("PointLight") then
					v:Destroy()
				end
				if v:IsA("Script") then
					v:Destroy()
				end
			end
			game.ServerStorage.Particles.Induvidual.Hearts:Clone().Parent = radio
			return false
		elseif player.OwnedRadios.OwnsHeart.Value == true and player.EquippedRadio.Value ~= 'HeartRadio' then
			radio.BrickColor = BrickColor.new("White")
			player.EquippedRadio.Value = 'HeartRadio'
			radio.Mesh.TextureId = 'rbxassetid://618739089'
			local children = radio:GetChildren()
			for i, v in pairs(children) do
				if v:IsA("ParticleEmitter") then
					v:Destroy()
				end
				if v:IsA("Attachment") then
					v:Destroy()
				end
				if v:IsA("PointLight") then
					v:Destroy()
				end
				if v:IsA("Script") then
					v:Destroy()
				end
			end
			game.ServerStorage.Particles.Induvidual.Hearts:Clone().Parent = radio
			return false
		elseif player.leaderstats.Points.Value <= 500 and player.OwnedRadios.OwnsHeart.Value ~= true then
			return true
	elseif radioType == 'WaterRadio' then
			if player.leaderstats.Points.Value >= 750 and player.EquippedRadio.Value ~= 'WaterRadio' and player.OwnedRadios.OwnsWater.Value ~= true then
				radio.BrickColor = BrickColor.new("White")
				player.OwnedRadios.OwnsWater.Value = true
				player.EquippedRadio.Value = 'WaterRadio'
				player.leaderstats.Points.Value = player.leaderstats.Points.Value - 750
				radio.Mesh.TextureId = 'rbxassetid://7133632'
				local children = radio:GetChildren()
				for i, v in pairs(children) do
					if v:IsA("ParticleEmitter") then
						v:Destroy()
					end
					if v:IsA("Attachment") then
						v:Destroy()
					end
					if v:IsA("PointLight") then
						v:Destroy()
					end
					if v:IsA("Script") then
						v:Destroy()
					end
				end
				game.ServerStorage.Particles.Induvidual.Water:Clone().Parent = radio
				return false
			elseif player.OwnedRadios.OwnsWater.Value == true and player.EquippedRadio.Value ~= 'WaterRadio' then
				player.EquippedRadio.Value = 'WaterRadio'
				radio.Mesh.TextureId = 'rbxassetid://7133632'
				local children = radio:GetChildren()
				for i, v in pairs(children) do
					if v:IsA("ParticleEmitter") then
						v:Destroy()
					end
					if v:IsA("Attachment") then
						v:Destroy()
					end
					if v:IsA("PointLight") then
						v:Destroy()
					end
					if v:IsA("Script") then
						v:Destroy()
					end
				end
				game.ServerStorage.Particles.Induvidual.Water:Clone().Parent = radio
				return false
			elseif player.leaderstats.Points.Value <= 750 and player.OwnedRadios.OwnsWater.Value ~= true then
				print("yes")
				return true
		   elseif nil then
				
		   end
		end
	end
end