I’ve made an elevator script, but the when the elevator part moves the character with phase through it when going up and float above when going down.
See: https://gyazo.com/6f6ad869e47476aaaabc737d13beb861
To try and keep the player still, I’ve tried welding them to the part
Weld = Instance.new("Weld", Elevator)
Weld.Part0 = Elevator
Weld.Part1 = Player.Character.HumanoidRootPart
Uhh an entire wallstick module is unnecessary if he’s only moving a player for a few seconds in an elevator without the need to be standing on the wall.
To the actual post now, you can just use WeldConstraint instead of Weld since it will do the “welding” for you. (Just change Weld in your script to WeldConstraint)
While updating the elevator part’s position though, you have to update CFrame and not position for the player to move with the weld, wiki link here.
EDIT: Just noticed you want the player to be able to move which means you’ll have to probably constantly set the humanoidrootpart’s CFrame position Y value above the elevator part instead with a constant loop as the tween runs or use :GetValue of tweenservice to create a tween function that updates player position with it.