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

Don't know how to make my table randomly chosen How do I code this right?

I've been working on a thing to randomly pick a image and well.. I know some people have done that with tables or I think they have.. I tried..

Table = {"Link","Link","Link"} -- Table was made.
while true do - Loop to refresh the script.
	if script.Parent.Parent.Visible == true then -- script is in a ImageLabel the parent to that is a frame.
		if script.Parent.Image == "" then --  Script is in an ImageLabel. Makes sure this doesn't overwrite the current image. 
			script.Parent.Image = "" .. Table{} -- How would I make this randomly pick a "Link" from my table? I tried this. Table{#} 
		end
	end
end

1 answer

✓ Accepted answer

Lua provides a single neat way to do things randomly. That is the

math.random( low, high ) -- inclusive

function. It generates a random number between (and including) low and high.


So how can we generate values from a table if we can only make numbers?

We randomly pick which value we use by assigning them each a number. Specifically, we assign the 1st element 1, the 2nd element 2, etc.

Lua, of course, does this for us:

list = {5, 9, 2}
print(list[1], list[2], list[3])
--	5	9	2

So, to generate a random element from the above list, it would be sufficient to generate a random number 1 to 3:

print(list[ math.random(1, 3) ])
-- 5
-- 9
-- 2
-- (randomly)

Maybe we don't know ahead of time how many things are in list. Then we just plug in the length of list, which we denote by #list:

print( list[ math.random( 1, #list ) ] )

In your case, we have a list of URLs, so the use of this will look something like

gui.Image = assets[ math.random( 1, #assets ) ]

Remember to use good variable names! Table is a meaningless name that does not inform us why you made it or what it might be. Good code will read almost like English!

1 comment

0

Explained perfectly and 100% understandable. Thank you for your answer.

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