How come my isA("Script") function doesn't work?

I think that you have to use ipairs instead of pairs as I got a silent error while iterating through players with pairs, but when I changed it to ipairs, it worked. Test it and tell me if it works.

Also, @yousefoyoy, that doesn’t change nothing. GetDescendants returns a table with Instances, and you’re just inserting that table content to another table.

2 Likes

Actually you don’t really need pairs or ipairs in Roblox because it uses Luau. It’s actually slightly faster not to sometimes (in writing and in speed) so that shouldn’t really matter (and in this case, it doesn’t matter what order the instances get checked)

2 Likes

But ipairs iterates through tables in a different way than pairs.

2 Likes

Yes, I know that, but I was just pointing out that neither versions mattered in this case

2 Likes

I think that pairs can’t iterate through arrays, and GetDescendants returns arrays, so?

2 Likes

I disagree, I’ve used this method many times and it always works. For example: if I have an if statement inside a for i , v in ipairs(whatever) it will only loop through one of the instances which is in the whatever and the script just breaks.

2 Likes

pairs can iterate both dictionaries and arrays but doesn’t iterate in order. ipairs, though faster, can only iterate through arrays and is in order, skipping nil values. However, generalized iteration is better now.

OP, run your game and check if the script is being enabled in the explorer view. If so, it might just be the script itself somehow not working.

2 Likes

when I switched it to ipairs, nothing changed, so this doesnt work

2 Likes

Did you try the script I provided?

2 Likes

I tested it and it sadly didnt change a thing

2 Likes

I think instead of showing us a small code block, why not make a separate place file for us to inspect and see the full picture of the bug, you don’t have to copy over the entire game, only elements that is required to reproduce the issue.

2 Likes

Try this. If it’s missing, make sure Archivable is turned on. If it’s not being enabled at all, assure that you are cloning the right object and/or it is actually a Script.

2 Likes

Hey guys…?
Can you look at this?

	local all_scripts = {}

					for _, scriptObject in ipairs(item:GetDescendants()) do
					
						if scriptObject:isA("Script") then
					
							table.insert(all_scripts,scriptObject)

						end
					end

					for i , v in ipairs(all_scripts) do 
						v.Enabled = true
						print(v.ClassName)
					end


Is this a prank? Because, um…
Let’s just say it still doesnt enable the script for the conveyor.

Oh yeah, look at this too.
Screenshot 2024-07-20 at 12.33.50 PM
(This shows that it is disabled)

2 Likes

Ah. Do Disabled = false instead of Enabled = true.

3 Likes

Why don’t you use disabled instead like Script.Disabled = false

3 Likes

@ShermaanCat and @OniiSamaUwU that sadly doesnt work…

2 Likes

Here’s some information I found:

2 Likes

In a nutshell, I don’t think you can enable/disable scripts using other scripts.

2 Likes

Ok so I decided to rewatch the part of the youtube tutorial im watching and type everything how it was before the edits and somehow it works idk what the heck happened but I’m happy thank you all so much for the support

4 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.