Conveyor belt malfunctioning!

Hello people of Roblox, I was working on my new Christmas StopMotion animation (Not named yet), and I was working on a part where the elfs are working on the toys using a conveyor belt, the problem is that the conveyor belt works perfectly, but something makes the objects stop moving, I looked everywhere to find a solution…Nothing, please help me scripting pros!

–qUQjue (aka Roquejo in YT)

UPDATE–I finally fixed the problem, apparently the “Factory” around it was coliding with the conveyor belt, so I just had to move it upward(Check one of my replys for more details)

Thanks for the help!

1 Like

Do you have a video or GIF?

Yes, here it is…Wait gotta convert it.

There we go, edited the post so you can see.

Did you make the conveyor yourself, or is it something you found in the toolbox or someone else made for you?

Anyway, if the conveyor was just made by setting the Velocity of the part, then it might have been reset to (0, 0, 0) if you moved or resized the part. Just set the velocity again to make it work.

1 Like

From what I see, the conveyer brick the gift ends on probably is lacking velocity.

1 Like

The object obviously stops moving as soon as it reaches the second part of the conveyor.

As Locks just stated:

Keep in mind that changing the position of the conveyor part (as perhaps with some other properties as well) will reset the velocity of the conveyor part.
Make sure
a) the conveyor part is anchored.
b) the desired velocity is set after you did any other changes to the conveyor part.

You can also use a script to achieve this.
Create a normal script within the part and paste the following template:

local part = script.Parent
part.Anchored = true
part.Velocity =, 0, 0)

Just replace the 0’s with your desired x, y and z velocity values.

1 Like

Thank you!

I found one at the tool box, I’m lazy :stuck_out_tongue:

Instead of removing the content of your thread, consider marking one of the posts as a solution and leaving the original thread contents so that if anyone else has a similar problem, they can find the solution with ease.


I would add further to this and instead use
part.Velocity = part.CFrame.lookVector*50 -- change 50 to whatever speed you wish

This way, you don’t have to worry about resetting those values if you rotate the conveyors and it’ll automatically push whichever direction you have the part facing. :slight_smile:


I actually have a conveyor system lying around from an abandoned project of mine. It looks for parts tagged as conveyors using CollectionService, and automatically sets their velocity at runtime, and whenever they’re changed or a new one is created. The other suggested methods of just having a script in each conveyor part is fine, but since I already have it, here it is.

You’ll need a plugin for setting tags on objects, just search the plugins catalog for “tag” or “CollectionService”. You can configure the script, but by default it just looks for parts tagged with “Conveyor” (case sensitive) and turns them into conveyors.

1 Like

Hey there. I would make your answer that it’s fixed at the solution instead of (FIXED).

1 Like

So, I finally fixed the problem, apparently it wasn’t the script or the Body of the conveyor belt, it was the Factory around it, you see, I accidently Union-ed the hole factory, making some “Air blocks” all inside the place, and that particular spot where it stopped, was where it collided with one of those “Air blocks” I just had to move the conveyor belt upward and everything was fixed, thanks for helping me.

—P.S: If your conveyor belt is broken and has the same problem as me, and moving it upwards doesn’t work, try making a new script or check if the conveyor belt’s body is correct and smooth.


I personally use this script whenever working with my Conveyor Belts. I have found the Velocity property on a BasePart to reset at random intervals… Consider using the following script. To use the script simply parent it to a BasePart and ensure that the FrontSurface of your BasePart is facing the direction you want the Velocity to be applied to.

local Speed = 10 -- Change this to how many studs / second your conveyor will go
script.Parent.Velocity = script.Parent.CFrame.lookVector * Speed
script.Parent:GetPropertyChangedSignal("Velocity"):Connect(function() -- Velocity got reset, we will manually reset it again.
	script.Parent.Velocity = script.Parent.CFrame.lookVector * Speed

Sorry for the late response :slight_smile: