Tank Chassis =/= Constraint Chassis

Ah, okay. I believe he posted here instead of another category like I did by mistake since he’s only a basic user
image

Not to mention that “basic users” can’t even post in #feature-requests

Both really. If you have an idea of how to make a car actually run like tank chassis with a constraint chassis, I’d love to hear it. But I’ve exhausted all my options to do that. The fact I’m a basic user though, means I can’t actually request such a feature. So any help in either direction would be greatly appreciated.

Being a basic user is lovely, but kind of a kick in the teeth with how little we can actually do.

2 Likes

If you have comments or concerns about the basic user program please post them here, as this thread is about vehicle chassis and not about the basic user program (so such comments are off-topic here):
https://devforum.roblox.com/t/upcoming-changes-additions-to-the-roblox-developer-forum/59393

Basic Users don’t have the ability to post to that post, so…

3 Likes

If you script the wheels to rotate (see the motor properties of HingeConstraint) then you can replicate the tank chassis. You may need to change the MotorMaxTorque and MotorMaxAcceleration to get the wheels to properly rotate.

Going forward and backward: Rotate all wheels in the same direction.

Going left: Rotate the right side wheels as if going forwards and the left side wheels as if going backwards.
Going right: Rotate the right side wheels as if going backwards and the left side wheels as if going forwards.

This should replicate how VehicleSeats did turning and movement.

This is the part that got kind of messed up. I could never quite find a way that made this part work correctly. The wheels being split in half for movement never seemed to quite work correctly when I was playing around with it. Only way I could find the vehicle to be turned was using a force in the seat to make the who car rotate on the Y axis, but it makes it handle really awkwardly because you’re just rotating the car as it moves the X/Z axises.

The announcement thread for PGS constraints included a link to an open-source place which had a vehicle made from PGS constraints. You should be able to use it as a reference to create any type of land vehicle with PGS constraints.

This is understandably frustrating, but if you do not have access to a category, please do not attempt to circumvent that restriction by posting the same thread in another category. This thread is fine because it doubles as a request for tips on making constraint vehicles, but you should modify the post so that it isn’t requesting a feature.

The trial program is an evaluation period – users are intentionally limited in what they can post for evaluation purposes. This is only a temporary program, so as long as you actively and constructively contribute to the categories you do have access to, you’ll move on to be a full member with access to every category.

1 Like

I didn’t have much trouble with it. Check it out: TankChassis.rbxl (17.0 KB)

All of the magic is done in a LocalScript in StarterPlayerScripts. This changes the AngularVelocity of the HingeConstraint for each wheel.

Note that you should be doing this sort of stuff in a LocalScript for the greatest responsiveness when driving. Since the vehicle is simulated locally, this should work with FilteringEnabled even if the AngularVelocity isn’t replicating, since the vehicle is simulated by the local player.


Edit: This version respects the Speed properties of the VehicleSeat. TankChassis.rbxl (17.1 KB)

Edit: This version works with any number of wheels. It adds every “HingeLeft” and “HingeRight”: TankChassis.rbxl (17.1 KB)

1 Like

I’ll give it a run real quick, and get back to you on my findings with my particular chassis.

To answer @TheSeanConn and @Firefaul 's questions, the Development Support category is not to be used for requesting features or submitting bug reports for the client directly. This is limited to full members only at the moment, and staff will remove threads that violate this rule even if the reason stated is “we can’t post in that category”.

This is intended to stay this way until the new front seat programme has had some time to prove itself. You can expect, if staff feel there are good results to this programme and this section is used properly, then the ability to post in other sections for basic users may be reevaluated.

Until then, please don’t post feature requests or bug reports here - send them over to a full member if you feel it is urgent that they are posted and then they can handle it from there.

Tank like steering is pretty bad. With cylindrical constraint you can now create much more interesting vehicle models.

It’s more about the traditional feel than anything else. With tank chassis, I’ve gotten so many years of practice down on how the car should drive, and feel. From a racing stand point, it’s just gotten to a point of perfection that A-Chassis and Inspare, and the others just aren’t on the same playing field. We’ve (the ro-racing community) gotten so used to tank, everything else feels weird, and trashy.

It works, but also it’s just not perfect to me. Especially because my vehicle is very heavy, it was difficult to find a setting that would work well with it.Thanks for the idea and work though. Very interesting.

I got a bit of help here a while back on making a tracked vehicle with suspension.
All wheels are driven off a script in the vehicleseat. It does lag and bug out occasionally, but I was quite surprised with how well it actually drove.
Going to put my knowledge gained from this into a realistic bulldozer, but probably minus the suspension.

If you were wondering there is a tension wheel on a SpringConstraint pushing down on the top center of the track to keep the tracks on the wheels.

Searched back and found the original post Broken Tracks with help from NWSpacek and StratoVector.

Impressive tank suspension and steering!

Thankuvedymuch chefdeletat, but obviously couldn’t have figured it without NWSpacek and StratoVector,

Learned a lot about Constraints from that, working on a construction site with front end loader, dump truck and hopefully a bulldozer next.
An original version I was working on got stuck when I was first trying to work with various Body forces but the issue was mostly the ‘rocks’ acting stuck. Think I got that fixed now.
Now how to figure out how to keep a vehicle with multiple Constraints from exploding occasionally…
Working with steering and having issues so I went back to Scripted Weld joints for the steering on the dump truck:

Yeah explosions are a bit of a problem. We have a fix in the pipeline. For now here are some tips to prevent them:

  1. the constrained parts must be perfectly aligned. For example if you have two hinges between tow parts, and the axes are slightly misaligned, it will contribute to instabilities
  2. springs must have a finite MaxForce set to something reasonable. Spring tend to be unstable, clamping their forces prevents the instabilities from exploding.
  3. avoid high mass ratios:
  • avoid heavy body on very light wheels or on light tread
  • tiny light knuckle in the suspension (part between body and wheel)

Hope this helps.

2 Likes

Nice to hear you’re working on this!
It seems to be more of a spawning issue after the weld scripts unanchor the Parts.
The front end loader and dump truck usually spawn fine, and if they do they work great after that. Both have weld scripts in them with Anchored Parts for most of the chassis, but there are some unanchored unwelded Parts in the suspension.
I tried saving the Model in Studio Test mode after the weld scripts had run but it seemed to make it worse.
The Springs are usually set somewhere below 10,000 MaxForce. The dump truck body Parts are set to Density=0.01 but the wheels are Density=4. Going to try that with the loader too. I try to get away with single HingeConstraints instead of multiple HingeConstraints in line with each other.

On another note I tried making a hanging ladder (like a chain type ladder) out of solid Part rungs with Constraint Hinges between them, then Rods, then Parts with Ball in Socket ends. Wow that was a lot of bouncing and exploding in each case!

Yeah there are some spawning issues, but I’m not an expert on these. Usually I people anchor the mechanism during the welding phase. Also there are some timing issues during instancing and one needs to wait a frame or so.

I can imagine a complex ladder having these sorts of problems. Currently the constraints can’t handle very long/complex constraint trees but we are working on this.