Simulate 2D physics for Parts

Hello there,

Since some time now, I try to find an affordable and complete way to simulate 2D physics on ROBLOX. I wrote a few topics to have any proper answer:
(Make unanchored parts not falling on Z Axis)
(Roblox physics when a part is falling)
(Custom movements)

I am trying to find out how to do so according to a project I have unfortunately stopped because I reached ROBLOX limits in term of physics…

See the game log
(Inspired by LittleBigPlanet, if you don’t know this playstation game, check it out to understand what I want to do)

My goal is to fully simulate a 2D physics system.
Imagine being in a 3D space (X, Y, Z) with an origin named O at, 0, 0).

(This is the current ROBLOX 3D space, and most of any other software)

But, since I want to simulate a 2D plan, I want to “get rid of” the Z axis. So my goal is to stabilize each unanchored part on the same Z position it started with

People gave me tons and tons of tips, the most successful one is: Use a BodyPosition instance class. Set, 0, math.huge) in the MaxForce property and the position of the part in the Position property.

This method seemed to be the most successful one, but unfortunately it showed its limits already:

  • It doesn’t stabilize perfectly (and I need accuracy)
  • It makes the game lag

I know that, by doing this project, lag is going to be a thing…

I am writing this message today because I gained hope again !

Roblox “released” a “new” instance: LinearVelocity !
(In fact this constraint isn’t new but let’s forget about this)

They added some properties that may be useful for me but I didn’t understand how to use it that much…

Something else:

Align Position and Align Orientation constraints have a new OneAttachment mode. When the constraints are in this mode the body that owns attachment0 will be the only body to move. For Align Position the attachment0 will be moved to the specified position. For Align Orientation the body will be rotated to the specified orientation, specified by both a primary and secondary axis. If primary axis only is true, then only the primary axis is used.
(Release Note 494)

I don’t know if these changes may help me in what I want to do…

So, what I want is ton find a good, efficient and proper way to lock a part on only one axis using constraints (best way) and not script (doesn’t work at all)

Thank you for having read,


1 Like

There is a solution now: Plane | Roblox Creator Documentation