This shouldn’t break Motor6Ds at all. They’re advanced, and allow for the use of animations, either by manipulation with scripts or with uploaded Animations.
This only affects surface joints of parts, like Hinge surfaces, Motor surfaces, Weld and Glue surfaces, and many more. The reason behind this change is to phase them out and get developers to use the new Constraints now, such as BallSocketConstraints, HingeConstraints, WeldConstraints (much easier to use than Welds nowadays), and many more.
In my opinion, surfaces are easier to use than constraints in some situations, such as making vehicles. These changes concern me because I’m sure many older games still heavily rely on surfaces, and the developers of some of those games may not have the time to redo those games using constraints.
I suggest having a ‘Compatibility’ option where surfaces are simulated using the constraints system, similar to what was done to lighting. If Roblox is not willing to do this, perhaps we could make a plugin to do it.
“After this change, Surfaces will have no absolutely no impact on building, and only exist as a visual aesthetic. Auto-welding can still occur if turned on, but the SurfaceType will have no control on the type of joint or weld being created.”
Thank you very much Roblox! I will enjoy this change and I also believe it will make studio easier to understand for new users!
I don’t really like this change since it basically breaks alot of vehicles and builds (at least that’s what happens to me, i’m in the beta program, and i’m trying to make vehicles but they don’t work). It broke alot of overly simple vehicles that were made with surfaces and now we need to use the constraints that are a pain to use.
Due to some delays with the Studio release we were not able add the new Beta Feature to the list today, it should be available tomorrow, and I’ll post here when it is. The post has been updated.
I’m working on a game with my friends, and we are using Surfaces for their visual look since we are building with a restricted 2007 style. We are not using them for any functional purpose since the place is anchored, and actively remove Snaps if one of us hasn’t already disabled surface joining in studio.
Since our Surface use is non-functional, we will not be affected by the change mentioned here, but with Surfaces being phased out entirely in the coming months, what can we do to recreate them? Normal mapping is not available for Textures at this time, so even if we upload the current surface textures, we can’t recreate them completely.
Mind leaving Workspace:JoinToOutsiders("Surface") as-is? Or provide an identical alternative? I still like to use the legacy surface weld feature to build things with, and I’d keep the old versions of the Studio tool plugins just to keep the feature.
My reason is that I don’t want to have to move assemblies away from static objects to prevent them from welding with the all option as I’m trying to build them. I’d rather use surfaces to define which sides weld with what. For example, sliding doors made of multiple parts in their frames.
Also, changing this particular feature would change the welding behavior of many legacy building tools, including Clonetrooper1019’s deliberately classic build tools.
Why is this feature in the books for being changed? I don’t see a reason for it if newer developers are likely going to come across the old surface behaviors (with MakeJoints in Library scripts) sooner than they will this particular API.
Could you further explain your use case for needing joining and non-joining surface types? The purpose of the WeldConstraint was to make this joining behavior more explicit: you choose what connects to what. You don’t need to worry about what the surfaces of things are, or if they are touching or not.
Imagine assembling a huge destructible building, or a complex door, or something like that, and then imagine manually putting a weld constraint between every pair of bricks, while with surface-joining you could just make a brick, duplicate it, and stack the copies on each-others’ sides. In the case of complex doors, you can avoid it welding with the frame by adding weld surfaces that are not touching the frame.
WeldConstraints are useful for welding intersecting or otherwise not-exactly-touching bricks, but I find it easier to weld numerous bricks together with surfaces.
If I want total control over how a thing welds together, I know where to find the option, but I usually don’t. I usually just want to guide how a brick welds with its neighbors.
Before I forget, here’s one recent door I needed to use legacy surfaces with to avoid welding to the frame while constructing it.
My game uses studs to have a retro-styled theme to it. It has absolutely no functionality, but it’s a major part of the game. Your post says it’ll exist as an aesthetic, but also says you will be slowly phasing out Surfaces all together. Will Surfaces still exist as an aesthetic in the future? Should I be worried?