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

How can I fix this Button script? (edited)

So I have this button script:

local owner = script.Parent.Parent.Parent.Parent:WaitForChild("Owner")

function onClicked(playerthatclicked)
    if playerthatclicked == owner.Value then
        local Model = script.Parent.Parent
        Model.OwnerOnlyDoor.BrickColor = BrickColor.new("Really red")
        Model.OwnerOnlyDoor2.BrickColor = BrickColor.new("Really red")
        Model.OwnerOnlyDoor3.BrickColor = BrickColor.new("Really red")
         Model.OwnerOnlyDoor4.BrickColor = BrickColor.new("Really red")
    end
end

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

The almighty Goulstem helped me edit this script to get it to this. There is still the same problem though. Since I want the owner to be the only one able to open/close the OwnerOnlyDoor for the tycoon I added a playerthatclicked script to it. This changed nothing all it did was cause absolutely nothing to happen in the output in-game and in studio even when the owner is the one clicking it. Please help!

1 comment

2

Did you define playerthatclicked variable?

2 answers

✓ Accepted answer
local owner = script.Parent.Parent.Parent.Parent:WaitForChild("Owner")

function onClicked(playerthatclicked)
    if playerthatclicked == owner.Value then
        local Model = script.Parent.Parent
        Model.OwnerOnlyDoor.BrickColor = BrickColor.new("Really red")
        Model.OwnerOnlyDoor2.BrickColor = BrickColor.new("Really red")
        Model.OwnerOnlyDoor3.BrickColor = BrickColor.new("Really red")
         Model.OwnerOnlyDoor4.BrickColor = BrickColor.new("Really red")
    end
end

script.Parent.ClickDetector.MouseClick:connect(onClicked)-- I changed this lined.

Your Problem

On line 4, you're comparing playerthatclicked with owner.Value. But you never set a parameter for your function named playerthatclicked - it's a nil value. So you'd end up with an error like Attempt to compare with a nil value or something like that.

Also, you neglected to add an 'end' for your if statement on line 4


How to Fix

Just add a parameter to your onClicked function on line 3and name it playerthatclicked.

Add an extra end


Code

local owner = script.Parent.Parent.Parent.Parent:WaitForChild("Owner")

function onClicked(playerthatclicked)
	if playerthatclicked == owner.Value then
		local Model = script.Parent.Parent
		Model.OwnerOnlyDoor.BrickColor = BrickColor.new("Really red")
		Model.OwnerOnlyDoor2.BrickColor = BrickColor.new("Really red")
		Model.OwnerOnlyDoor3.BrickColor = BrickColor.new("Really red")
		 Model.OwnerOnlyDoor4.BrickColor = BrickColor.new("Really red")
	end
end

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

5 comments

0

I am 100% confused now it still doesn't work. Nothing happens even as the Tycoon owner. I am so annoyed!

0

Is there any errors showing in the output?

0

Not as I saw there was just nothing at all but let me check again

0

Well it said nothing. As if you arent the owner even though you are, so it doesnt run the rest on the script

0

Make sure that your connection statement is indexing a ClickDetector.

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