Having issues with spinning platform

Hello!

I’ve made this little thingy that spins around and its goal is to move up and down while spinning forever.

This was very simple to do, but I’m also trying to make it so that the player can use this spinning platform as transportation.

The way this spinner is built up is that everything is basically welded to the small sphere in the middle, so that I can control everything from one single Part.

What I’ve Tried:

1). AngularVelocity and AlignPosition

Now I initially tried using AngularVelocity to make this thing spin, while I used AlignPosition and a Script to make it move up and down. This worked, but not really because the player is driving a horse in this game and the horse added a lot of weight onto the edge of the spinner, which would result in the spinner being put at an angle, pushing the horse off of it.

2). CylindricalConstraint

I did some research and discovered the CylindricalConstraint, it seemed to be exactly what I needed because it allowed the spinner to move up and down freely while also only rotating on one singular axis. The problem was that whenever the spinner began moving up, the horse/player would begin violently shaking which would result in the horse sometimes being thrown off of the platform or the entire spinner just staying in place. I’m assuming this is because the horse’s weight was pulling it down but correct me if I’m wrong.

3). Tweening

Now I didn’t want to use tweening because I thought I could get along without it, but at this point I was desperate and I tried tweening on the client only to remember that the horse model was server sided so the horse phased right through the spinner as it went up. I didn’t try tweening on the server side because it would be very laggy.

4). PlaneConstraint

I tried using a PlaneConstraint with the CylindricalConstraint to hold the Horse in place at the same height as the spinner so that it wouldn’t have any chance of clipping through it, but the PlaneConstraint just gave the horse access to clip through everything else.

Soo yeah I’m kinda stuck right now. If anyone has any suggestions or ideas I’d be so grateful to hear them. I don’t have that much experience with constraints so let me know if I’m maybe using them wrong or if there are constraints that’d better suit my needs. I want to do this the right way without using any hacky solutions.
Thanks!

2 Likes

After looking at your attempts to make it work I think the AlignPosition+AngularVelocity combo is best Replacing AlignPosition with PrismaticConstraint won’t hurt either and the only issue is the horse’s mass. So try making the horse’s mass super low (massless won’t work)

2 Likes

Hello sir.

I found a solution to your issue regarding the spinning platform. This solution fixes both vertical and angular velocity issues which would cause the “horse” (in this case a vehicle) to constantly jitter and act unusably.

You’ll want to utilize a feature on Roblox called “Network Ownership”, this feature will essentially give the client on the horse full control of the physics for both the horse & the platform that they are standing on.

It’s a bit difficult of a concept to explain briefly, so if you’d like to learn more read this:

But the main idea is that the platform would either grant network ownership depending on nearby players, OR alternatively the platform could be in ReplicatedStorage and then duplicated to the workspace on each individual client

That would remove the server physics lag from the equation entirely, thus having the client deal with the hard work for you!

I hope this is useful to you.

1 Like

Hi,
[I’m not a particularly good expert so don’t expect me to exactly nail this]

Try use tweens!
You can make the hinge still do whatever the hinge does and then make a tween that will constantly go up and down. It won’t dampen down the hinge.
You can also try changing the custom part properties in the explorer.

[also cool game so far]

Have you tried this? I always use it for all of my moving parts, and I’ve never had an issue with it:

Try using an animation rather than a constraint, rig the model, animate it spinning (this shouldnt be too hard), insert a script into the model, place an animation into the model, call the animation in the script, play the animation. This way the server shouldnt have to do much calculations and it’ll just loop the anim and spin. If you anchor the root of it it shouldnt tip either.