Elevator Moving | Weld Problem | Free Fall Animation

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? I want to weld a player to an elevator but without a weld. I want to fix the player same in the video below.

  2. What is the issue? The weld totally fix a player so he can’t move in the “first person view”.

  3. What solutions have you tried so far? I have tried to weld a player to an elevator but i want to do it without weld?

So i will explain my problem.

I have created an elevator and i want to know how to use a “bodyposition and bodygyro” instead a weld because i have a free-falling animation.

This is the video : Elevator Weld Problem - YouTube

This is not my game it’s “Quantum Science Energy Research Facility” and in the video we can see the player is not welded.

So how can we reproduce that ?

You could either set the characters JumpPower to 0 when on the platform, Set the Y position of the character before you weld, or do something more advanced that will let the player walk around while the elevator is active.

There are other ways of doing this of course, but I would personally probably go for the more advanced version as linked.

hi, thx for your answer but “set the Y” is already do. When i weld the player he is already on the ground. So do you have an idea to remove the free fall anim ? and for the elevator i have tried the AlignPosition. So i don’t know which method has been used in this game.

local coreCall do
	local MAX_RETRIES = 10

	local StarterGui = game:GetService('StarterGui')
	local RunService = game:GetService('RunService')

	function coreCall(method, ...)
		local result = {}
		for retries = 1, MAX_RETRIES do
			result = {pcall(StarterGui[method], StarterGui, ...)}
			if result[1] then
				break
			end
			RunService.Stepped:Wait()
		end
		return unpack(result)
	end
end

coreCall('SetCore', 'ResetButtonCallback', false)

controls:Disable()

local controls = require(Player.PlayerScripts.PlayerModule):GetControls()

local coreCall do
	local MAX_RETRIES = 10

	local StarterGui = game:GetService('StarterGui')
	local RunService = game:GetService('RunService')

	function coreCall(method, ...)
		local result = {}
		for retries = 1, MAX_RETRIES do
			result = {pcall(StarterGui[method], StarterGui, ...)}
			if result[1] then
				break
			end
			RunService.Stepped:Wait()
		end
		return unpack(result)
	end
end

coreCall('SetCore', 'ResetButtonCallback', true)

controls:Enable(true)

You could try enabling/disabling controls before welding so the player does not have time to jump or move once it initiates.

If you choose this, remember to run a nil check to see if the player left. The server may hang if not executed. Usage of remote events would be practical since Controls are Client sided.