Pillars won't go down

Add ClickDetector to Model. Then type the command:


Also the script isn’t working (it’s probably my mistake).
Do I put it in the script or add a script and the proximitypromt, do I put it in the model I want to be moved or in the first group?

Let me start from the begging because I think I didn’t explain myself.

I had already a working script and everything but when I attach my designated model it doesn’t work now I think it is because the thumbnail of the group isn’t black and white but with colours.

I tried it and nothing happened

You can’t tween a model without tweening every part in it down / weld all the parts.

You should check out this post..

And how do I weld all the parts?

1 Like

Add a WeldConstraint to each part and set Part0 to the current part and set Part1 to the part you want to tween.

1 Like

I tried that and the same the door goes down and the pillar won’t.

Ok so I did my own scripting from what I got from yt, now I need them to happen on a buttons touch and 4 from the front and the back.And there would be a button that makes them all go down and up.

If that came out rude I am sorry.

But instead of them going down they are going left and right.

What I’d do is use a CFrame.(type)Vector to move it in a specific direction.
If you want it to move backwards and forwards, use LookVector.
Up and down? Use UpVector.
Right and left? RightVector.

Like this :

DownVector is its own property. You don’t assign anything to it like you would a CFrame.new() instance. (although CFrame.new could be used in this same regard)

Then like from this script what line would you add and what would you remove because I am not understanding you.

local TweenService = game:GetService(“TweenService”)

local model = script.Parent

local leftDoor = model.LeftDoor

local prompt = model.Top.Attachment.ProximityPrompt

local tweenInfo = TweenInfo.new(1)

local leftGoalOpen = {}

local leftGoalClose = {}

leftGoalOpen.CFrame = leftDoor.CFrame * CFrame.new(0, -3.5, 0)

leftGoalClose.CFrame = leftDoor.CFrame

local leftTweenOpen = TweenService:Create(leftDoor, tweenInfo, leftGoalOpen)

local leftTweenClose = TweenService:Create(leftDoor, tweenInfo, leftGoalClose)


if prompt.ActionText ==“Close” then


prompt.ActionText = “Open”



prompt.ActionText = “Close”



You could do that; I was referring to the fact that CFrame.new() can hold matrices, which can give a similar effect.
However for readability and learning I’d go with CFrame.UpVectors().

Like this? : Screenshot - 4ec520b53f9e52426a9a945a0889414e - Gyazo

Try this instead:

leftGoalOpen.Position += (leftGoalOpen.CFrame.UpVector() * 3)

You cant assign anything to those vector classes as they’re readonly.
Also, I strongly suggest to read through CFrames.

This link will take you to a more complicated site with the vector values detailed:

I put it like this : Screenshot - 30d22199a34c0f3021dba82a3598c698 - Gyazo

And I tried how I did mine before with changing the X one and I realised when the part doesn’t have anything in it, it will work but if it does it won’t.