Addind position to HumanoidRootPart every stepped doesn't allow me to move

Here’s a video showing what I mean,


And here is the script,

-- Server Script

local RunService = game:GetService('RunService')

local Part = workspace.Part

local lastPosition = Part.Position

RunService.Stepped:Connect(function()
	local Delta = Part.Position - lastPosition
	
	for _, Plr in game.Players:GetPlayers() do
		if Plr.Character == nil then return end
		
		local rootPart:BasePart = Plr.Character:FindFirstChild('HumanoidRootPart')
		
		if rootPart then
			rootPart.CFrame += Delta
		end
	end
	
	lastPosition = Part.Position
end)

while task.wait() do
	Part.Position += Vector3.new(.1,0,0)
end
1 Like

The issue is that the player’s position keeps being reset and the next position to be teleported to is being calculated before the player’s movement is put into account.

2 Likes

Oh ok, but how can I make the player stick to the part then?

1 Like

Seems like the teleporting is done on a server script perhaps this is the reason why.

I believe it should be done in a local script to avoid network replication lag and also to make it similar to the popular jailbreak train platform system solution which should seem to work.

You might need to do more work if you want to do something like jumping between platforms.

2 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.