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

For loop only goes through once so output array only has one item?

My code below is a snippet that is supposed to create a random chance from a list as I'm too lazy to use math.Random but for some reason, in the final for loop, it only loops through it once, and then it outputs a single item in an array. The whole point of this function is to save time and create random chances and I have no way on continuing my project without this function.

Code:

local function chance(list) --list should go from highest likeness to lowest likeness for example: {High, Medium, Low}
	if type(list) == "table" then
		print(list)
		local inputtable = {}
		for i, v in pairs(list) do
			table.insert(inputtable, list[i])
			print(inputtable)
		end
		local outputlength = #list * 3
		print(outputlength)
		local outputtable = {}
		for i, v in pairs(inputtable) do
			print(i)
			print(v)
			for i = 1, outputlength do
				print(i)
				print(inputtable[i])
				table.insert(outputtable, inputtable[i])
		return outputtable
			end
		end	
	else
		print("Input is not a table.")
	end
end

Output:

02:14:39.498   ?  {
[1] = PointOrb,
[2] = RedPointOrb,
[3] = BluePointOrb
}  -  Server - SpawningScript:48
02:14:39.499   ?  {
[1] = PointOrb
}  -  Server - SpawningScript:52
02:14:39.501   ?  {
[1] = PointOrb,
[2] = RedPointOrb
}  -  Server - SpawningScript:52
02:14:39.502   ?  {
[1] = PointOrb,
[2] = RedPointOrb,
[3] = BluePointOrb
}  -  Server - SpawningScript:52
02:14:39.504  9  -  Server - SpawningScript:55
02:14:39.504  1  -  Server - SpawningScript:58
02:14:39.504  PointOrb  -  Server - SpawningScript:59
02:14:39.505  1  -  Server - SpawningScript:61
02:14:39.505  PointOrb  -  Server - SpawningScript:62
02:14:39.506   ?  {
[1] = PointOrb
}  -  Server - SpawningScript:84

1 answer

It's because you are returning the output table as soon as you insert an element to it.

Move the return above your else statement

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