Ok, I won’t explain exactly what this is for, but basically the script will loop through an object’s descendants and see if one of them is a script, and if it is, enable it. However, it doesn’t work. Here’s the object in question.
Here’s the code.
for _, scriptObject in pairs(item:GetDescendants()) do
if scriptObject:isA("Script") then
scriptObject.Enabled = true
end
end
I hope me telling you guys what the game is will help you produce better responses.
This is a tycoon game and so whenever you step on a button it will link “item” to the corresponding item.
It will then loop through the item’s descendants to see if there’s a script.
@thatguybarny1324,
If I use FindFirstChildOfClass, it could return an error (I think)
I havent tried the other tips yet I’ll try them soon.
@EIitium,
I don’t think it’s that, when I did IsA it still didnt work so I switched it to isA which is the exact same thing I believe
If you have multiple scripts in the descendants of the item then the script which you provided will only get one of the scripts then Enable it and ignore the rest, to fix this, create a table and store all of the script instances in there, and use another for i, v in ipairs loop to manipulate the property Enabled for each individual script in the table. You can clear the table later if you want.
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
end
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.
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)
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.
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.