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

LocalScript Issue, not a string?

Okay so I have a localscript that is controlling a playergui (not finished but a start). Basically it has to arrow gui textbuttons and when you click them you should be able to freely move about the options it has to offer. Unfortunately this does not work if you have more than 2 options to view (options are hats)

You get this error if you try to do it:

16:31:35.591 - String expected
16:31:35.591 - Script 'Players.Player1.PlayerGui.MainScreen.Customizer.CustomizerF', Line 19 - global changeinfo
16:31:35.592 - Script 'Players.Player1.PlayerGui.MainScreen.Customizer.CustomizerF', Line 46
16:31:35.592 - Stack End
16:31:35.592 - Disconnected event because of exception

All variables are properly defined it is just an issue with something! Here is the script, if you could make this more efficient please do!

--------------------------------------------------------------------
-- Hat Table, add and remove as pleased
--------------------------------------------------------------------
hats = {"21243283", "184749513", "155654004", "55397193", "2336804"}
hatinfo = {"Some hat", "hat 2"}
hatimage = {"blah I need help", "right here"}
--------------------------------------------------------------------
-- Global Variables
--------------------------------------------------------------------
leftarrow = script.Parent.ArrowLeft
rightarrow = script.Parent.ArrowRight
currenthat = script.Parent.CurrentHat
hatimage = script.Parent.HatImage
page = 1
--------------------------------------------------------------------
-- Change Info Script
--------------------------------------------------------------------
function changeinfo()
	currenthat.Text = hatinfo[page]
	hatimage.Image = "http://www.roblox.com/Thumbs/Asset.ashx?Width=110&Height=110&AssetID=" .. hats[page]
	print(page)
end
changeinfo()
--------------------------------------------------------------------
-- Arrow Functions
--------------------------------------------------------------------
function ClickedLeft()
	if page >= #hats then
		page = 1
	elseif page <= #hats then
		if page ~= 1 then
			page = page -1
		elseif page == 1 then
			page = #hats
		end
	end
	changeinfo(page)
end

function ClickedRight()
	if page >= #hats then
		page = 1
	elseif page <= #hats then
		page = page +1
	end
	changeinfo(page)
end

leftarrow.MouseButton1Down:connect(ClickedLeft)
rightarrow.MouseButton1Down:connect(ClickedRight)

1 answer

Nvm I found a solution: The first few tables did not equal the top table so that's why

hats = {"21243283", "184749513", "155654004", "55397193", "2336804"}
hatinfo = {"Some hat", "hat 2", "hat 3", "hat 4", "hat 5"}
hatimage = {"blah I need help", "right here", "hello", "wassup", "hi"}

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