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

How do I make a script where upon clicking a box/chest opens?

You've probably seen this in many games. Upon clicking a treasure chest, it opens up (probably with an angelic sound effect and sparkles) and then reveals the treasure inside. I'm doing something very similar, except it is a Pandora's box, not a treasure chest.

I forgot to mention, the box named "Pandora" which is the script.Parent, contains multiple parts. The top lid of pandora known as "Top" contains 3 multiple parts. Sorry, I forgot to make that clear.

When I try to rotate the top lid, using C-Frame I get this error in the output:

21:24:18.863 - Position is not a valid member of Model

Here is the script so far:

function onClicked(playerWhoClicked)
	script.Parent.CFrame = CFrame.new(script.Parent.Top.Position, Vector3.new(0, 90, 75)) -- Here, I'm only trying to rotate it. 
end
script.Parent.ClickDetector.MouseClick:connect(onClicked)

Thank you!

1 comment

0

You need to access the parts that form the lid withing the model then change its CFrame.

1 answer

Here you go. When moving or re-positioning models, you have to use the :SetPrimaryPartCFrame() method.

function onClicked(playerWhoClicked)
    script.Parent:SetPrimaryPartCFrame(CFrame.new(script.Parent.Top.Position
,Vector3.new(0,90,75)))

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

Sorry for the sloppy lines, but the website wouldn't adjust for its length.

3 comments

0

Oh. I tried this script, but I got an error: 14:48:21.115 - Position is not a valid member of Model

0

I'm not sure why you received that error, as it works properly for me.

0

Ooh, I forgot to mention that the top lid includes multiple parts.

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