Changes to Part Surfaces

I’m really glad that it won’t be breaking any older games. Anyways I think this is a pretty good update as these( at least in my experience) are rarely used and I found them quite a bit confusing at times.

Aren’t you able to create a collapsing tower using “glue surfaces” ?

2 Likes

Yes but as stated by this announcement their functionality is slowly being phased out, and an alternative is needed.

2 Likes

Allow me to clear up some things. First, please note that since this is being tested as a beta feature, there’s no guarantee that the currently planned changes are the ones that will be released globally. We want to hear your feedback and adapt things to make sure we change happens as smoothly as possible.

That being said, thank you for raising your concerns! Our goal with this change is to simplify surface joining for new users while still allowing people to instantiate and use all the legacy joints. We will never totally remove these joints as old games still rely on them.

Workspace.JointToOutsiders uses the new surface joining rules, creating only ManualWelds on all surfaces, except for the different Rotate joints when using a Hinge, Motor, or SteppingMotor surface.
MakeJoints, will still create all the old joints, following the old surface pair rules. Our hope is that MakeJoints can suffice for all legacy needs, but let me know if that’s not the case! And of course, try the change out when released in beta and report back with any issues.

8 Likes

My concern with this change is regarding wheels. I have what may be the #1 most popular car chassis on roblox, and I’m concerned that this will break them. The cars use ball wheels and classic surfaces to hold the model together.

Consider this sectional view of a car:

  • Red: part shapes
  • Yellow: hinge/motor surface (located on wheel)
  • Light blue: bounding box of wheel
  • Dark blue: joints concerning

The wheels on the cars may be touching parts of the car’s body in various places, either on top or on the side of the wheel part’s bounding box.

Assuming the joint type “Unjoinable” is removed in addition to all the others, there’s nothing telling the roblox engine not to weld the wheels to the chassis. Any kind of “smart algorithm” will fail too, as without the Unjoinable type, there is complete loss of information as to the developer’s intention regarding assembly vs. mechanism.


My second concer is regarding part orientation. After the removal of any orientable features on Studs (namely the R), the only way to know the orientation of a part is using the Surface selector or by adding surfaces on known sides.


Using the surface selector to find the Front side of a part

Knowing which way a part faces is critical for many systems in Roblox, the Front side in particular, although there are a number of systems that use other sides. For example, nearly every single vehicle that I make uses the Front of a part as the Front of the vehicle. The wheels’ Right side must face the Right side of the vehicle. The headlights’ Right side must face the Front of the vehicle. And so on. I am hardly the only one nor even the first to come up with an orientation system for models, and removing the orientation from Parts will make Parts as useful as Klein Bottles. They are both non-orientable solids!


NWSpacek’s Coaster Creator Plugin

In my roller coaster plugin, I use surface types to tell the user which way the roller coaster is facing. In this image, you can tell the roller coaster is facing up, and pointing left. The studs surface type indicates the upward direction of the roller coaster, and the Hinge surface type indicates the front direction of the roller coaster. Likewise, the bottom of the part has the Inlet surface type, to indicate the downward direction of the roller coaster:


The bottom side of a roller coaster

I considered decals, but they tend to be ugly, and I don’t like how they can get drawn in the incorrect order sometimes, and SurfaceGuis don’t look that swell either given their lack of anisotropic filtering. There is no other “robloxic” way to communicate this info to the user. Since the beginning of roller coaster building on Roblox, Studs has been used to indicate the Binormal axis, Inlets the Negative Binormal, and Hinges the Tangential axis.

Without surfaces, using the tool is a disorienting mess:


The ??? side of a roller coaster

Which way is this roller coaster facing? Left or right? Is it facing right-side up or upside down? Can we use the Surface properties to determine which way it’s facing? Without surfaces and without the Surface properties, it’s impossible.

My coaster plugin is probably the #1 roller coaster building tool, with over 5.5k takes. Although updating the tool to use ugly decals or SurfaceGuis is possible, I expect most users won’t understand this and send their vitriol directly to my inbox. Not something I want to have happen.

20 Likes

I do agree with some of your points, but I also think there are ways to circumvent the issues you mention. For example, to know where the track is facing and if its up or down, you could add a simple arrow decal on the top or even use a decal of the intlets and studs. For the car conections, you could use hinges and ballsockets as alternatives. So, whilst you would have to convert stuff; I dont think this will break roblox coasters. And to make it so certain parts dont collide, you could use the nocollisionconstraint or collisiongroups.

1 Like

I’ve not used that car chassis for years, and I don’t do much with roller coasters either. I’m talking about the tens or hundreds of thousands of users who use my cars in games created by junior developers who want some cars for their new city group. You don’t need to be telling me how to use the Roblox engine, you need to be telling those junior developers.

4 Likes

Your chassis should be fine. The Hinge will still create the Rotate joint, and the spheres can never surface weld, regardless of surface type. You’ll be able to verify this though tomorrow with the beta release.

As for the orientation issue, you can use Attachments with Visible = True to mark the orientation on the part, even in game.
attachment

Turning on Constraint Details will provide even more info with Attachements
attachment2

You could also change the way the roller coaster is constructed to make orientation less ambiguous.
However, after this change you will still be able to see and set surfaces on plastic parts, so for now this will be totally unaffected.

5 Likes

Can’t wait to see how all of these changes affect simple building.

I’m kind of excited to see what new things I can make. I just hope developers don’t lose their creations from this.

3 Likes

By surface-weld I specifically mean creating ManualWelds. A sphere will only create Rotate type joints if it has the corresponding surface, and never any kind of weld. By looking at your diagram, the wheel will only create the RotateV on with Motor surface, and nothing else.

Attachments can be inserted from the Create dropdown in the Constraints section of the Model tab, and simply clicking on the area of the part you want the attachment to be. The Attachment.Axis will be aligned with the normal of the face you select, but the actual orientation of the attachment is irrelevant to your use case.
add_attachment

4 Likes

You wanted to simply mark a particular surface of a part to know the part’s orientation, just like what the Hinge surface does. You don’t need to see the arrows to do this, and the attachment’s orientation is independent of the part’s orientation.

If you wanted to use the arrows, you could just make the part and attachment’s orientations equal, then the attachment’s primary axis will point along the part’s Right Vector (+X), and the secondary axis will point along the Up Vector (+Y).

1 Like

Affects new builds in Roblox Studio? How about new updates for the game? Will it make things a little bit hard or no?

I don’t get it what it says much but you mean Smooth Surface will weld?
Sorry if I don’t understand much. I am really shook to why it is gonna be changed when I usually work things with Surfaces.

Personally, I like using surfaces as they are now; While I’m glad thought has been put into the changes, I would prefer to use weld/stud/inlet/etc surfaces as they’ve always worked. Glad to have a heads up on this though!

8 Likes

I’m getting pretty worked up. Hopefully it’s over nothing, but, just to be sure,

@kleptonaut, can you confirm which stage, if any, the surface selector is getting removed in?

EDIT:

The surface selector will get removed at some point. Not this first stage. At some point after that, the surface selector will get removed, and its ability to orient parts will be moved to the Move and Resize tools in some fashion.

2 Likes

So I’m using a ball and a hinge for my vehicles wheels, does this mean it will no longer function as this update comes out?

3 Likes

I’m not very happy about manual welds being phased out. I’ve run into strange behavior using weld constraints in the past and I’d rather not run into it again:

(I know I never got around to making a bug report for that. Sorry.)

Moreover, I use “legacy” weld scripts in pretty much all my work (cough cough @Quenty’s qperfectionweld) and it would be a shame to have to abandon them for a new system.

I know this is all inevitable, but I still feel like constraints could be improved some before we start deprecating the tried and true methods of the past.

4 Likes

Thank god I wouldn’t like to loose those beautiful glitchy 2008 cars.

2 Likes

So currently the chassis is already built that way, will it stay the same considering its an older model or if i re upload the chassis do we know if it’ll break?

Will probably break. I still don’t really know we’ll have to see.

I take this update feature will break Motor6D? If so this is just going to be a pain to change over.

1 Like