Goal
Code a script to carry and move around unanchored parts and models.
Problem
Connected parts via weld or whatever will sometimes freeze* which will cause the part to stack up velocity and launch itself.
Video above shows the Rig model freezing and I am unable to move it with my script.
Video above shows how the script normally acts with a single part/meshpart (choppy video); however, in the end you can see that I tried to move the Rig model and failed, when I tried again the physics seems to kick in and launch the rig.
This happens with any parts that’s welded, unwelded parts never show this behavior.
freeze: Not affect by the script yet still be able to be pushed my players and objects.
Attempts
I’ve tried slowing the update cycle to 10 times per second instead of every physics heartbeat; didn’t work, models still freeze even with slower cycle.
Limit max velocity; Band-Aid fix, model still launches but not into the void anymore.
Help
If this is an engine problem, then I will have to settle with this semi-uncommon occurrence as it only applies to welded parts, otherwise I would accept any possible solutions.
How do you apply exactly physics to welded objects? Make sure you are doing that to the root of the whole model or whatever. Like HumanoidRootPart (The root of character)
Are you making sure the Client (which I assume is where your dragging code is running) has Network Ownership over the rig? In the video, it looked like your character touched the rig right before it was flung, which usually causes the player to automatically gain Ownership of something.
If this is an issue with the part you’re applying force to not being the AssemblyRootPart, can’t you set the RootPriority to force it to be? This wouldn’t make a lot of sense to me. It shouldn’t matter what part you apply a velocity to, as long as you have Network Ownership over the assembly, so I would recommend making a Bug Report.
This script is not Client sided (multiplayer purposes)
– My character touching the Rig doesn’t change or unfreeze it, it seems to only unfreeze when the script runs on a different part of the Rig/Assembly (mainly the RootPart)
Setting RootPriority doesn’t work
– Tried to set the instance RootPriority higher than all the other parts in the Assembly but the bug persist for some reason
RootPart
– I’m 99% sure that I have to apply force to the original RootPart as after changing the code to do said thing, the bug disappeared
– However, the bug is annoying to replicate as it randomly happens, so I could’ve just not tested for long enough
I’m accepting getting the AssemblyRootPart as the solution as it can apply to all scenarios and it seems to work.
besides that yeah this is definitely a weird bug thing