I’m currently creating my own implementation for walking around and jumping on moving platforms. It works great however, my current method to disable Roblox’s default behaviour is to create a fake part and CFrame it to the floor of a plane every step. This creates a very laggy effect and causes the fake part (blue) to drag behind the plane at high speeds, which completely destroys the immersion.
Is there a better way to get around Roblox’s default behaviour? I don’t care if its hacky (this one already is) it just needs to get rid of the laggy effect.
This behaviour cannot be disabled. As far as hacking something together to circumvent this behaviour, I’m not sure about that either.
I’m not really sure what that default behaviour has to do with this though. It looks as though you’re sitting on a plane (which then you could use PlatformStand, which I do believe voids some behaviours from Humanoids). If I’m misunderstanding, please do correct me.
I’m flying the plane. The goal is that other people can stand up on it and walk around in flight. This part already works great, however it is ruined by this laggy fake platform.
Correct me if I misunderstood what you think is a bug, but welding something so another part is suppose to result in this behaviour. If a part is unanchored and controlled (in some way) by a body mover then Roblox’s default behaviour will happen.
My current solution is to create a fake part (the blue part) that is CFramed to the floor every step. Players then stand on the fake part (it is raised a tiny bit) and because the fake part is CFramed, Roblox’s default behaviour doesn’t occur because of this:
Edit: Then I do some other stuff that actually allows them to walk on the fake platform, however I don’t need to go into detail on that bit because it works fine.
That is what the OP says, yes. Roblox’s current behaviour is buggy, unreliable and people can’t jump when using it (momentum isn’t carried when jumping)
I’ve said it multiple times in this post. Players on the moving platform is not my issue. That already works really well. The issue is getting the fake part to CFrame to the real part without the lag.
Updating the platform CFrame happens on the server, and walking on a moving platform is all handled by the client. I might have found a solution that I’m checking out now, though.
Try creating the part locally and CFraming/simulating it from the client. This would ensure that no lag ensues between replicating the plane’s movement from the pilot and moving the fake floor around.
If your goal is to make the blue part not lag behind, use renderstepped with CFrame (dont use heartbeat), and make it client sided in order to eliminate the lag.
Try AlignPosition + AlignOrientation with rigidity enabled, instead of CFraming on the blue part. Note that none of the parts can be anchored, otherwise it wont replicate to client.