Changes to Surface-Based Welds and Part Property Setters


Thanks for the reply!

I had a few welds inside my part as well as the surface joint, so I was required to delete this joint individually - however, I came to notice that these joints are named differently depending on the surface type, and some surface types use Motor6D instead.

Is there any way to find out what joint inside the child is actually the surface joint? If not, is there a list of the names of each joint with respect to the Surface Type?


The surface type joints always have the default name for their type, their class name.

For joint type / name to SurfaceType in parenthesis:

  • Weld (Weld surface against any other surface)
  • Snap (Studs and Inlets or Universal on either of those)
  • Glue (for Glue. Don’t use this ever. It’s awful.)
  • Rotate (Hinge)
  • RotateV (Motor. The V in RotateV is for velocity, as the parameters control velocity)
  • RotateP (for SteppingMotor. P is for position, parameters control target angle)


In default & explicit mode, my cars just fall apart.

I’m not really sure what would be the best option to fix this behavior. The cars are just held together with hinges & welds with surface. It’s very strange in that it’s only affecting cars at places when I’m inserting them in from the ToolBox, but not affecting cars that are already in the place that is set to default.

Is my best option to use Make Joints in a script in each model?


Your models as they are uploaded do not contain the welds necessary to hold them together.

Because the explicit behavior no longer automatically creates welds when a game starts, you will have to either do what you said in your post and run MakeJoints from a script in each car, or manually run MakeJoints on each car model from the command bar in Studio before playing.

I suggest you use the latter, but if you are feeling lazy and don’t have any particular surface breaks, you can run workspace:MakeJoints() in Studio’s command bar to join all the surfaces together before playing.