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.