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

So when I run this script I get "ClickDetector is not a valid member of union operation"?

The script functions fine. Despite line 91 being highlighed reading ClickDetector is not a valid member of unionoperation it doesn't actually seem to impair the model. It works as intended. HOWEVER, I have like 40 of these scripts floating around in 40 different models, so when ever I need to test the game's mechanics for another model, I have to exit out of 40 bloody scripts. Its getting really annoying really fast.

function onClicked()
	script.Parent.Parent.L1.Script.Disabled = false
	script.Parent.Parent.L1.Transparency = 0.7
	script.Parent.Parent.L1.CanCollide = true
	script.Parent.Parent.L2.Script.Disabled = false
	script.Parent.Parent.L2.Transparency = 0.7
	script.Parent.Parent.L2.CanCollide = true
	script.Parent.Parent.L3.Script.Disabled = false
	script.Parent.Parent.L3.Transparency = 0.7
	script.Parent.Parent.L3.CanCollide = true
	script.Parent.Parent.L4.Script.Disabled = false
	script.Parent.Parent.L4.Transparency = 0.7
	script.Parent.Parent.L4.CanCollide = true
	script.Parent.Parent.L5.Script.Disabled = false
	script.Parent.Parent.L5.Transparency = 0.7
	script.Parent.Parent.L5.CanCollide = true
	script.Parent.Parent.L6.Script.Disabled = false
	script.Parent.Parent.L6.Transparency = 0.7
	script.Parent.Parent.L6.CanCollide = true
	script.Parent.Parent.L7.Script.Disabled = false
	script.Parent.Parent.L7.Transparency = 0.7
	script.Parent.Parent.L7.CanCollide = true
	script.Parent.Parent.L8.Script.Disabled = false
	script.Parent.Parent.L8.Transparency = 0.7
	script.Parent.Parent.L8.CanCollide = true
	script.Parent.Parent.L9.Script.Disabled = false
	script.Parent.Parent.L9.Transparency = 0.7
	script.Parent.Parent.L9.CanCollide = true
	script.Parent.Parent.L10.Script.Disabled = false
	script.Parent.Parent.L10.Transparency = 0.7
	script.Parent.Parent.L10.CanCollide = true
	script.Parent.Parent.L11.Script.Disabled = false
	script.Parent.Parent.L11.Transparency = 0.7
	script.Parent.Parent.L11.CanCollide = true
	script.Parent.Parent.L12.Script.Disabled = false
	script.Parent.Parent.L12.Transparency = 0.7
	script.Parent.Parent.L12.CanCollide = true
	script.Parent.Parent.L13.Script.Disabled = false
	script.Parent.Parent.L13.Transparency = 0.7
	script.Parent.Parent.L13.CanCollide = true
	script.Parent.Parent.L14.Script.Disabled = false
	script.Parent.Parent.L14.Transparency = 0.7
	script.Parent.Parent.L14.CanCollide = true
	script.Parent.Parent.L15.Script.Disabled = false
	script.Parent.Parent.L15.Transparency = 0.7
	script.Parent.Parent.L15.CanCollide = true
	script.Parent.Parent.L16.Script.Disabled = false
	script.Parent.Parent.L16.Transparency = 0.7
	script.Parent.Parent.L16.CanCollide = true
	script.Parent.Parent.L17.Script.Disabled = false
	script.Parent.Parent.L17.Transparency = 0.7
	script.Parent.Parent.L17.CanCollide = true
	script.Parent.Parent.L18.Script.Disabled = false
	script.Parent.Parent.L18.Transparency = 0.7
	script.Parent.Parent.L18.CanCollide = true
	script.Parent.Parent.L19.Script.Disabled = false
	script.Parent.Parent.L19.Transparency = 0.7
	script.Parent.Parent.L19.CanCollide = true
	script.Parent.Parent.L20.Script.Disabled = false
	script.Parent.Parent.L20.Transparency = 0.7
	script.Parent.Parent.L20.CanCollide = true
	script.Parent.Parent.L21.Script.Disabled = false
	script.Parent.Parent.L21.Transparency = 0.7
	script.Parent.Parent.L21.CanCollide = true
	script.Parent.Parent.L22.Script.Disabled = false
	script.Parent.Parent.L22.Transparency = 0.7
	script.Parent.Parent.L22.CanCollide = true
	script.Parent.Parent.L23.Script.Disabled = false
	script.Parent.Parent.L23.Transparency = 0.7
	script.Parent.Parent.L23.CanCollide = true
	script.Parent.Parent.L24.Script.Disabled = false
	script.Parent.Parent.L24.Transparency = 0.7
	script.Parent.Parent.L24.CanCollide = true
	script.Parent.Parent.L25.Script.Disabled = false
	script.Parent.Parent.L25.Transparency = 0.7
	script.Parent.Parent.L25.CanCollide = true
	script.Parent.Parent.L26.Script.Disabled = false
	script.Parent.Parent.L26.Transparency = 0.7
	script.Parent.Parent.L26.CanCollide = true
	script.Parent.Parent.L27.Script.Disabled = false
	script.Parent.Parent.L27.Transparency = 0.7
	script.Parent.Parent.L27.CanCollide = true
	script.Parent.Parent.F1.Transparency = 0
	script.Parent.Parent.F1.CanCollide = true
	script.Parent.Parent.F2.Transparency = 0
	script.Parent.Parent.F2.CanCollide = true
	script.Parent.Parent.F3.Transparency = 0
	script.Parent.Parent.F3.CanCollide = true
end

script.Parent.ClickDetector.MouseClick:connect(onClicked)

4 comments

2

This......this is why we have loops, please learn some basic control structures first https://developer.roblox.com/articles/Roblox-Coding-Basics-Loops

0

^

2

And as for the error itself, you don't have a ClickDetector in whatever script.Parent is

0

Please do a for loop

1 answer

✓ Accepted answer

For your actual question, either you renamed the click detector, or you parented it to something else, or it was destroyed somewhere else. But you also have to know to use for loops to prevent massive chunks of code like the one you have.

Instead of :

function onClicked()
    script.Parent.Parent.L1.Script.Disabled = false
    script.Parent.Parent.L1.Transparency = 0.7
    script.Parent.Parent.L1.CanCollide = true
    script.Parent.Parent.L2.Script.Disabled = false
    script.Parent.Parent.L2.Transparency = 0.7
    script.Parent.Parent.L2.CanCollide = true
    script.Parent.Parent.L3.Script.Disabled = false
    script.Parent.Parent.L3.Transparency = 0.7
    script.Parent.Parent.L3.CanCollide = true
    script.Parent.Parent.L4.Script.Disabled = false
    script.Parent.Parent.L4.Transparency = 0.7
    script.Parent.Parent.L4.CanCollide = true
    script.Parent.Parent.L5.Script.Disabled = false
    script.Parent.Parent.L5.Transparency = 0.7
    script.Parent.Parent.L5.CanCollide = true
    script.Parent.Parent.L6.Script.Disabled = false
    script.Parent.Parent.L6.Transparency = 0.7
    script.Parent.Parent.L6.CanCollide = true
    script.Parent.Parent.L7.Script.Disabled = false
    script.Parent.Parent.L7.Transparency = 0.7
    script.Parent.Parent.L7.CanCollide = true
    script.Parent.Parent.L8.Script.Disabled = false
    script.Parent.Parent.L8.Transparency = 0.7
    script.Parent.Parent.L8.CanCollide = true
    script.Parent.Parent.L9.Script.Disabled = false
    script.Parent.Parent.L9.Transparency = 0.7
    script.Parent.Parent.L9.CanCollide = true
    script.Parent.Parent.L10.Script.Disabled = false
    script.Parent.Parent.L10.Transparency = 0.7
    script.Parent.Parent.L10.CanCollide = true
    script.Parent.Parent.L11.Script.Disabled = false
    script.Parent.Parent.L11.Transparency = 0.7
    script.Parent.Parent.L11.CanCollide = true
    script.Parent.Parent.L12.Script.Disabled = false
    script.Parent.Parent.L12.Transparency = 0.7
    script.Parent.Parent.L12.CanCollide = true
    script.Parent.Parent.L13.Script.Disabled = false
    script.Parent.Parent.L13.Transparency = 0.7
    script.Parent.Parent.L13.CanCollide = true
    script.Parent.Parent.L14.Script.Disabled = false
    script.Parent.Parent.L14.Transparency = 0.7
    script.Parent.Parent.L14.CanCollide = true
    script.Parent.Parent.L15.Script.Disabled = false
    script.Parent.Parent.L15.Transparency = 0.7
    script.Parent.Parent.L15.CanCollide = true
    script.Parent.Parent.L16.Script.Disabled = false
    script.Parent.Parent.L16.Transparency = 0.7
    script.Parent.Parent.L16.CanCollide = true
    script.Parent.Parent.L17.Script.Disabled = false
    script.Parent.Parent.L17.Transparency = 0.7
    script.Parent.Parent.L17.CanCollide = true
    script.Parent.Parent.L18.Script.Disabled = false
    script.Parent.Parent.L18.Transparency = 0.7
    script.Parent.Parent.L18.CanCollide = true
    script.Parent.Parent.L19.Script.Disabled = false
    script.Parent.Parent.L19.Transparency = 0.7
    script.Parent.Parent.L19.CanCollide = true
    script.Parent.Parent.L20.Script.Disabled = false
    script.Parent.Parent.L20.Transparency = 0.7
    script.Parent.Parent.L20.CanCollide = true
    script.Parent.Parent.L21.Script.Disabled = false
    script.Parent.Parent.L21.Transparency = 0.7
    script.Parent.Parent.L21.CanCollide = true
    script.Parent.Parent.L22.Script.Disabled = false
    script.Parent.Parent.L22.Transparency = 0.7
    script.Parent.Parent.L22.CanCollide = true
    script.Parent.Parent.L23.Script.Disabled = false
    script.Parent.Parent.L23.Transparency = 0.7
    script.Parent.Parent.L23.CanCollide = true
    script.Parent.Parent.L24.Script.Disabled = false
    script.Parent.Parent.L24.Transparency = 0.7
    script.Parent.Parent.L24.CanCollide = true
    script.Parent.Parent.L25.Script.Disabled = false
    script.Parent.Parent.L25.Transparency = 0.7
    script.Parent.Parent.L25.CanCollide = true
    script.Parent.Parent.L26.Script.Disabled = false
    script.Parent.Parent.L26.Transparency = 0.7
    script.Parent.Parent.L26.CanCollide = true
    script.Parent.Parent.L27.Script.Disabled = false
    script.Parent.Parent.L27.Transparency = 0.7
    script.Parent.Parent.L27.CanCollide = true
    script.Parent.Parent.F1.Transparency = 0
    script.Parent.Parent.F1.CanCollide = true
    script.Parent.Parent.F2.Transparency = 0
    script.Parent.Parent.F2.CanCollide = true
    script.Parent.Parent.F3.Transparency = 0
    script.Parent.Parent.F3.CanCollide = true
end

script.Parent.ClickDetector.MouseClick:Connect(onClicked)

you can have something much more compact like:

local function onClicked ()
	for i = 1, 27 do
		local thing = script.Parent.Parent["L"..i]
		local thing2 = script.Parent.Parent["F"..i]
		if thing then
			thing.Transparency = 0.7
			thing.CanCollide = true
			thing.Script.Disabled = false
		end
		if thing2 then
			thing2.Transparency = 0
			thing2.CanCollide = true
		end
	end
end)

which is a whole 76 lines shorter and easier to modify.

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