Trouble with Physics Bugs

  1. Goal
    Code a script to carry and move around unanchored parts and models.

  2. 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.

  1. 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.
  1. 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.

Code if it helps identify the problem.

1 Like

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)

1 Like

After experimenting, this solution doesn’t seem to work. The bug still happens when the root part is lighter than another part welded to it.

It seems like the bug doesn’t happen when the force is applied to the heaviest object between the welds. So that’s good and bad.

  1. (good) If theory is correct, the solution is to switch instance to the heaviest in the assembly
  2. (bad) I would rather have that not be the case
  3. I’m not 100% sure if this will work until doing more tests

I’ll close this in a few days if I’m able confirm this, but I’d appreciate more solutions that keeps the instance the same.

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.

1 Like
  1. 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)

  2. 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

  3. 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

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.