Bear with me here, please. I have this script in a brick:
local Library3 = require(Workspace.Start) script.Parent.Touched:connect(function(hit) if hit.Parent:FindFirstChild("Humanoid") then Library3.start(script.Parent.Parent.Parent) end end)
I have this in a ModuleScript:
local Library3={} function Library3.start(item) function scan(item) if item:FindFirstChild("Rotor") then item.Rotor.BrickColor = BrickColor.new(1020) elseif item:FindFirstChild("Alert") then item.Alert.BrickColor = BrickColor.new(1020) item.Alert.Transparency = 0 end if #item:GetChildren() > 0 then for _,v in pairs(item:GetChildren()) do scan(v) end end end end return Library3
When a player touches the brick, it's supposed to call the module script, which is then supposed to scan all the bricks in the model to find "Alert" and "Rotor" and make the necessary changes to their properties. Touching the brick produces no effect however. Anything I'm doing wrong here?
You have a misplaced end
.
local Library3={} Library3["start"] = function(item) function scan(item) if item:FindFirstChild("Rotor") then item.Rotor.BrickColor = BrickColor.new(1020) elseif item:FindFirstChild("Alert") then item.Alert.BrickColor = BrickColor.new(1020) item.Alert.Transparency = 0 end end if #item:GetChildren() > 0 then for _,v in pairs(item:GetChildren()) do scan(v) end end end return Library3
REMEMBER
Formating is IMPORTANT. Readability
is arguably more important than Functionality
.