What do you want to achieve? Keep it simple and clear!
Consistent Motor6D behavior
What is the issue? Include screenshots / videos if possible!
Motor6Ds behave as intended under the conditions of a ship being spawned from a terminal, but when being spawned from entering the game in a ship, the motor6d doesn’t move anything at all when C0 and C1 are changed.
What solutions have you tried so far? Did you look for solutions on the Developer Hub?
Solutions tried and failed so far:
Making a new Motor6D and setting it up once the player’s ship is spawned (results in behavior described above.)
Having the ship model come with a Motor6D with the Part1 and Part0 properties set to nil, then setting those properties once the ship is spawned (results in behavior described above.)
Having a fully set-up Motor6D in the ship model already (results in the Motor6D being destroyed once it’s cloned in from ServerStorage.)
I’m at my wits end. I’m starting to wonder if this is an issue with Motor6Ds on roblox’s end, because there are no differences between how the ships spawn in when being spawned from a terminal and being spawned from joining the server in a ship. The spawning script is the same, the tweens are the same, the Motor6D setup is the same. Yet, the Motor6D is just not working. I can set C0 to 60,0,0 in server mode and absolutely nothing changes. The canopy is unanchored, the ship is unanchored, both hinge parts that the Motor6D relies on are unanchored, and it works perfectly when spawning a ship from the terminal, and yet, the behavior is inconsistent across the board.
Unless I can find a fix, I might have to switch to using hingeconstraints. Then the behavior should be consistent.
Motor 6Ds are generally used for animating rigs and it seems to me based on the provided information, you are manipulating the C0 and C1 offset properties to achieve movement through TweenService. There are other alternatives to Motor 6Ds such as WeldConstraints and basic Welds. Unless you are using Motor 6Ds for something else other than movement such as animation, I’d recommend using one of the alternatives.
Additionally, confirm that Part0 and Part1 are set to the correct parts and that the Motor 6D (if you switch to something else, the other alternatives are setup the same way) property Active and Enabled are both true.
I am using Motor6Ds to animate the canopy opening and closing. Welds and weldconstraints are useless in this situation as they are rigid and cannot be manipulated as Motor6Ds can. I have confirmed that part0 and part1 are set, and that enabled and activ are enabled.
I have seen other games using Motor6Ds for similar purposes, but if it’s bad practice then I will switch to hingeconstraints or cylindricalconstraints as those may be more reliable.
I am unsure to why the Motor6Ds are behaving this way. Just to see if anything changes, duplicate your ship model then try something else to see if that fixes the problem. I’m also a bit confused at what you mean by welds and weldconstraints are rigid — since they also share the same C0 and C1 offsets that a Motor6D has which is a CFrame meaning you can incorporate transformations as well as rotation. The only difference is that Motor6Ds have a JointInstance C0 and C1 which is used by animations.
That should not happen. Motors wont get destroyed if you clone a model from SS and parent it to workspace. Under normal circumstances that should not happen, I worked many times with Motors for custom characters and machinery.
I noticed before that sometimes the motors get destroyed if you move manually a part that is already welded by a motor, changing size and stuff related, but that used to happen more often a year ago, currently it doesnt disappear always, just starts to act weird.
I suggest you use some plugins to work with the motors, to make it more friendly and easy to deal with, like EditRig plugin, which lets you manipulate manually the motor without breaking the rig.
For example this is somekind of door (red), welded by motor to a bigger part, oriented 45° on C1 orientation, and I opened the plugin to see where is the Motor ending points so I can adjust them
Those 2 ways to spawn the ship, its weird that is working for one scenario and not for the other, big chance that you are not handling the ship spawn in the same way.
Its hard to know the issue without more specific information.
A player join game, and the player spawn inside their ship? the ship model is parented to where? to workspace or to character? is character parented to ship model?
If a rigged model by motors detects a Humanoid, bodyParts etc, starts to act different, trying to find Vector values inside parts, attachments, and stuff related with Characters.
I use Motors for the steering on my cars as well as joints for front end loaders/excavators and it works very well, even when I spawn clones of them in.
Don’t mess with Motor6Ds if you only need one axis of rotation, just use a Motor between 2 Parts at the same location and change the DesiredAngle to what you need. Weld one of the Parts to the ship and the other Part to the canopy.
The reason I didn’t use motors is because the ship system relies on gravity being ignored in order to function, which entails everything being massless. This doesn’t work in practice as the hinge will cause the canopy to be affected by gravity. In any case, I found out that the culprit was a weld script that was only executed under specific condition. The issue is solved now.
As I said previously, it turned out to be a stray welder script that was behaving inconsistently. I’ll have to look at the code my friend wrote, but the issue is fixed. Thanks all the same!