Part Surface Weld Changes [Activated!]

There are WeldConstraints. You can visually control which blocks are joined with them. You can even join a group of intersecting parts together by selecting all the parts and then clicking the create WeldConstraint option on the Model tab.

This allows you to visually edit joints as you see fit without accidentally joining your models to other things.

Of course, I believe it is possible for a plugin to visually-display legacy joints, such as those created while dragging bricks around in Studio, so you can break the ones you don’t want.

Though the WeldConstraints linger around when you duplicate and drag parts, you can quickly find and break them, which makes up for the extra effort.

4 Likes

ok, so dues the automatic welding permanently stay as something you can turn on and off on top of this?

Automatic welds are created with legacy welds. You can’t see them visually without a plugin, but they are automatically created and broken as you drag blocks around.

In constrast, WeldConstraints are completely manual. They don’t automatically break, and you need to create them with some button clicks as I described before, but you can see them visually using only built-in tools.

The sole exception I know of to their manual nature is that Explosions automatically break them by disabling them.

4 Likes

Heads up, we haven’t forgotten about this and we plan to globally release this tomorrow!

The previous bug was related to MoveTo, and has been fixed.

6 Likes

Hello, I just wanted to ask for a heads up on what to do if my game relies heavily on surface-types? Joining to outsiders seems to join smooth against smooth surfaces which is not ideal for major areas of my game. It’s following the brick-built style of classic games and the original surfaces worked perfectly.
Thank you!

If you game relies on building using original surface joints during gameplay, then you can use MakeJoints to still create the legacy joint types based on surfaces. This is described in the original thread. There’s also a reply that has a code example on how to recreate the original JoinToOutsiders behavior with MakeJoints. There may be other solutions for your case but I don’t know a lot of the details.

2 Likes

Thank you! I will put this to use.

1 Like

I’ve noticed recently that random welds have started to appear on parts, even when the parts are anchored.

Does this have anything to do with this update, and is there any way to disable it?

It’s kind of annoying and messes with my game.

3 Likes

Yes, just disable “Join Surfaces” via the button shown in the post’s image.

“Join Surfaces” should be off if you ever want to handle welds yourself with WeldConstraints.

Would it be possible to change it so it doesn’t affect anchored parts though?

It’d be a great feature to use if it were to only work with non-anchored parts (which are the only ones it’d have effect with anyways), but having to enable it and disable it continuously every time I want to switch between buildings can get tedious.

Thanks for the reply though! :+1:

We can look into it, however this is existing behavior of the surface join system. Surface joining itself is not a new feature (its been around since the beginning), the only change here is that now all SurfaceTypes join with each other with the same joint type. If you weren’t using it before there’s little reason to start now, WeldConstraints are still the preferred method.

1 Like

So this is about the surfaces being removed, will those still work? (legacy hinges)
image

2 Likes

Just had to deal with this myself. This feature needs to be default off, I just had to run a command to remove all welds with Part0 == Terrain.

Dragging my vehicles across the terrain to place them would cause them to weld to the terrain…

3 Likes

wow I just spent 3 HOURS trying to figure out what was causing my armor welds to screw up, thought I messed my weld script up somewhere and rewrote it like 4 times
nope this stupid setting was on by default and was making a bunch of extra welds connecting pieces that shouldn’t be connected

thanks, roblox

4 Likes

There has been nearly 2 months notice about this change. It also appears in Studio’s What’s New widget.

1 Like

Not too much to ask to have things like this off by default. Or at the very least it shouldn’t weld parts if they are both anchored. Also would have been nice if it had respected my previous setup of having it set to never join surfaces when it changed.

Not everyone watches out for these smaller updates. All I really look out for it the big stuff like lighting overhauls/grass/etc.

1 Like

This change is on by default as part surface types are being removed for various reasnos.

In my opinion, JointCreationMode.Surface should work as it had to. I don’t see any reason for these changes. Part surfaces just existed, were rarely, but used, and did not cause any bugs or glitches. I know Roblox is moving towards constraints, but when building big and destructible building with moving elements, they both need to be used. When I was building my game, I noticed that surface and constraints complete each other, surface - fast to create but low-detailed and constraints - hard and slow to make, but big functionality.
What’s the solution?
I think it would be best to continue having this “join surfaces” toggle and place “allow surface joints” setting somewhere in the game settings, which when activated, replaces the toggle with drop-down menu.

4 Likes

Could you elaborate on what makes WeldConstraints hard and slow to make? Ideally, you should not need to use both. Surface joints are legacy objects, and all future projects should try to use Constraints. We want to continue improving the tools so they are simple and fast to use.

For me, using weld constraints is faster because I can select any number parts, click “Weld” from the constraints list, and all touching parts will be welded together. This removes any need for a kind of “weld script”. But there may be areas we are lacking, so feedback here would be super helpful!

This surface joint change distills the different kinds of surface joints being made down to 1 (exception being legacy hinges/motors). This simplifies things and can even slightly improve performance. It also makes it easier for us to change this single surface joint to something more similar to Weld Constraints in the future.

1 Like

I thought old Welds already behaved like WeldConstraints. Aside from disabling WeldConstraints with a boolean, what’s the difference?