Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

[SOLVED] Why is this line throwing an error?

--Seconds, Minutes, and Goal are IntValues
--IsRunning is a BoolValue

local seconds=Workspace.Timer.Seconds.Value
local minutes=Workspace.Timer.Minutes.Value
local started=false
local running
if Workspace.Timer.IsRunning.Value==true then
	running="Counting..."
else
	if started then
		running="Paused"
	else		
		running="Not started yet"
	end
end
local goal=Workspace.Timer.Goal.Value

function updatetext()
	script.Parent.TimeLeft.Text=(goal-minutes):tostring()..":"..seconds:tostring()
	script.Parent.IsActive.Text=running
end
updatetext()


Workspace.Timer.Seconds.Changed:connect(function(v)
	seconds=v
	updatetext()
end)

Workspace.Timer.Minutes.Changed:connect(function(v)
	minutes=v
	updatetext()
end)

Workspace.Timer.IsRunning.Changed:connect(function(v)
	if v==true then
		running="The timer is running"
		started=true
	elseif v==false then
		if started then
			local running="Paused"
		else
			local running="Not started yet"
		end
	end
	updatetext()
end)

12:28:41.266 - Players.Player1.PlayerGui.RaidTimerGui.Timer.UpdateGui:20: attempt to index a number value 12:28:41.269 - Stack Begin 12:28:41.269 - Script 'Players.Player1.PlayerGui.RaidTimerGui.Timer.UpdateGui', Line 20 - global updatetext 12:28:41.270 - Script 'Players.Player1.PlayerGui.RaidTimerGui.Timer.UpdateGui', Line 23 12:28:41.270 - Stack End

1 answer

✓ Accepted answer

You cannot use tostring as a method of numbers; numbers do not have members.

a:b() is sugar for a.b(a), and (5).tostring is clearly not valid.

Replace those uses of value:tostring() with tostring(value).


It should be noted, however, that the tostring in this case is unnecessary. Numbers, when experiencing concatenation, are converted to strings automatically.

1 comment

0

thank you

This discussion is preserved as it was. New answers, comments, and votes are closed.