Best way to let characters move on top of spinning bricks?

I’m trying to make a system of spinning bricks that would be able to spin in different directions (on the X, Y, or Z axis). This has worked fine using CFrame, although when using this method characters to not move with the bricks that are spinning. Each brick has a value in it to tell which direction it needs to spin and how much, and a base script starts to spin them once the game starts. My issue is - since they have to spin in multiple directions/speeds, I don’t know of any good way to accomplish all of this while still keeping the player on the platform that’s spinning. Does anyone have any suggestions on how to accomplish this?

Try changing the friction property of the spinning bricks?

If not, you can try messing with constraints.

If you want the Player to spin on the rotating brick use a HingeConstraint.
Put 2 Parts, 1 anchored with an Attachment and HingeConstraint on it, the other Unanchored with the other Attachment on it. You can make the Anchored Part Cancollide off and Transparent if you’d like.

Set the Properties of the HingeConstraint to get the Rotation Speed you want: https://developer.roblox.com/api-reference/class/HingeConstraint

5 Likes

The issue with CFrame is that it jumps from one position to the next instead of actually rotating so relying on a Player on that Part moving properly is kind of difficult.

Ah, thanks. I thought of using constraints but I’m trying to spin bricks in random directions using all 3 axes. It didn’t really occur to me that I could just move the hinge constraint to another face to change the direction it was spinning though for some reason. HingeConstraints are working perfectly.
And, for something that I want to move straight from one point to another I assume something like BodyVelocity would work fine? I need it to move from one spot to another (and reverse/loop), so something like using TweenService to CFrame it would do just what I need but it encounters the same issue here (I need it to be able to effectively “float” while it’s moving).

https://developer.roblox.com/api-reference/class/PrismaticConstraint

You set the ServoMaxForce to inf (they are pretty weak, I use them in my front-end loader and have to put two PrismaticConstraints to get just enough force to tilt the bucket) and then play with the Restitution and the amount of time a script loops to set the TargetPosition from one end of the travel to the other.

BodyPosition and BodyGyro would work as well with a script that sets the Position back and forth between your destinations.