PhysicsSettings

Show Deprecated
Not Creatable
Settings

The PhysicsSettings is a singleton class, which lets you view debugging features in Roblox's physics engine. You can find it under the Physics tab in Studio's settings menu.

Summary

Properties

When set to true, physically simulated objects will stop being simulated if they have little to no motion for a set period of time.

When set to true, parts that are BasePart.Anchored will show a gray surface outline on the surface of the part's bounding box that is currently facing the ground.

When set to true, each physics assembly is assigned a unique color and the Part associated with the assembly are outlined with the color. Parts that are attached together by JointInstance will share the same color.

When set to true, parts that are actively being physically simulated will have a red outline.

When set to true, Part will be outlined with a specific color, depending on the state of its root simulation body.

When set to true, each contact island will render SelectionBox adorns on the parts in contact islands, where each contact island is assigned a random color.

When set to true, sphere adorns will be drawn at the contact points of each part where physics interactions are occurring.

When set to true, XYZ axes are rendered at the BasePart.CFrame of every part.

When set to true, every individual mechanism of parts is given a unique color.

An ancient property that hasn't work correctly since late 2007. It's supposed to render an XYZ axis on the root part of a Model, but the axis rendering component doesn't work correctly.

When set to true, each Player's character is outlined with a unique color, and each part that the player has network ownership over is outlined with the same color.

An ancient property that hasn't worked correctly since late 2007. It's supposed to render a large XYZ axis in the center of each BasePart, but the axis rendering component doesn't work correctly.

When set to true, a cylinder is drawn around each Player's character, representing their Player.SimulationRadius.

When set to true, parts that aren't aligned on the 1x1x1 grid will be outlined yellow.

An ancient property that hasn't worked correctly since late 2007. It's supposed to render a large XYZ axis in the center of the world, but the axis rendering component doesn't work correctly.

When set to true, Roblox will fall back to using its legacy CSG solver when performing solid model operations.

HIDDEN
NOT REPLICATED

This property is supposed to show the BasePart.ReceiveAge of a part, but it does not work correctly.

When set to true, the joint connections of each part, and the states of their underlying primitive components are visualized as a spanning tree.

Controls the throttle rate of Roblox's physics engine.

When set to true, the underlying collision geometry for PartOperation and MeshPart is rendered.

SolverConvergenceVisualizationMode: SolverConvergenceVisualizationMode

If the PhysicsSettings.PhysicsEnvironmentalThrottle is set to DefaultAuto, this specifies the maximum time that the physics environmental throttle has to wait before it is allowed to automatically change.

If set to true, version 2 of Roblox's CSG solver will be used instead of version 1.

Methods

Events

Properties

AllowSleep

When set to true, physically simulated objects will stop being simulated if they have little to no motion for a set period of time.

AreAnchorsShown

When set to true, parts that are BasePart.Anchored will show a gray surface outline on the surface of the part's bounding box that is currently facing the ground.

AreAssembliesShown

When set to true, each physics assembly is assigned a unique color and the Part associated with the assembly are outlined with the color. Parts that are attached together by JointInstance will share the same color.

AreAwakePartsHighlighted

When set to true, parts that are actively being physically simulated will have a red outline.

AreBodyTypesShown

When set to true, Part will be outlined with a specific color, depending on the state of its root simulation body.

Body Types

ColorBody TypeDescription
Real Time BodyPhysics Body that is always simulated in real time, and is never throttled. Used for Humanoids.
Free Fall BodyPhysics Body that is freely moving with no physical contact.
Joint BodyPhysics Body that is being influenced by a physically simulated joint, such as a Motor or a Hinge.
Contact BodyPhysics Body that is in contact with another physics body.
Symmetric Contact BodyPhysics Body that is experiencing a torquing force, while in contact with another body.
Vertical Contact BodyPhysics Body that is moving very little along the Y plane, while in contact with another body.

AreContactIslandsShown

When set to true, each contact island will render SelectionBox adorns on the parts in contact islands, where each contact island is assigned a random color.

AreContactPointsShown

When set to true, sphere adorns will be drawn at the contact points of each part where physics interactions are occurring. Each sphere also has an arrow drawn in 3D, facing the surface that the contact point is detecting.

Solver Variations

The behavior of this property varies depending on whether Roblox's physics engine is using the PGS Physics Solver, or the Spring Physics Solver.

This is controlled by the Workspace's Workspace.PGSPhysicsSolverEnabled property.

Spring Physics Solver

When Workspace.PGSPhysicsSolverEnabled is set to false, the contact points are color coded as listed below. The length of the arrow extruding from the sphere depends on how much force the contact point is exerting, and what the contact type is.

ColorContact TypeDescription
Normal ContactContact point with no special conditions.
Resting ContactContact point that has been active for at least 4 frames.
Second Pass ContactContact point that was made by a kernel joint going through a second pass. Rarely seen.
Real Time ContactContact point that was made with a real-time physics body. This applies to tripped `Class.Humanoid`.
Joint ContactContact point that was made under the context of a physically simulated joint. This applies to Motors and Hinges.
PGS Physics Solver

When Workspace.PGSPhysicsSolverEnabled is set to true, the contact points are always colored RED, and the length of the arrow will always be 1 stud. There are no special conditions tracked, because the PGS solver does not keep specific lookup tables for the states listed in the Spring Solver.

ColorContact TypeDescription
Normal ContactContact point with no special conditions.

AreJointCoordinatesShown

When set to true, XYZ axes are rendered at the BasePart.CFrame of every part.

AreMechanismsShown

When set to true, every individual mechanism of parts is given a unique color.

AreModelCoordsShown

An ancient property that hasn't work correctly since late 2007. It's supposed to render an XYZ axis on the root part of a Model, but the axis rendering component doesn't work correctly.

AreOwnersShown

When set to true, each Player's character is outlined with a unique color, and each part that the player has network ownership over is outlined with the same color.

ArePartCoordsShown

An ancient property that hasn't worked correctly since late 2007. It's supposed to render a large XYZ axis in the center of each BasePart, but the axis rendering component doesn't work correctly.

AreRegionsShown

When set to true, a cylinder is drawn around each Player's character, representing their Player.SimulationRadius. Each physically simulated object will check to see which player is closest to that object, and if they are within the player's simulation radius. If both conditions are met, that player will becomes the network owner of that object.

AreSolverIslandsShown

Roblox Script Security
Roblox Script Security

AreTerrainReplicationRegionsShown

AreTimestepsShown

Roblox Script Security
Roblox Script Security

AreUnalignedPartsShown

When set to true, parts that aren't aligned on the 1x1x1 grid will be outlined yellow.

AreWorldCoordsShown

An ancient property that hasn't worked correctly since late 2007. It's supposed to render a large XYZ axis in the center of the world, but the axis rendering component doesn't work correctly.

DisableCSGv2

When set to true, Roblox will fall back to using its legacy CSG solver when performing solid model operations.

ForceCSGv2

Hidden
Not Replicated

IsInterpolationThrottleShown

IsReceiveAgeShown

This property is supposed to show the BasePart.ReceiveAge of a part, but it does not work correctly.

IsTreeShown

When set to true, the joint connections of each part, and the states of their underlying primitive components are visualized as a spanning tree.

Spanning Tree Table

There are several visualizations made available when this property is set to true:

ColorAdorn TypeDescription
BoxRoot Primitive of a Mechanism that is currently anchored, or connected to an anchored primitive. (See: `Class.BasePart:IsGrounded()`)
BoxRoot Primitive of a Mechanism that is free to be physically simulated.
BoxRoot Primitive of a Mechanism that has moving components.
SphereRoot Primitive of an Assembly.
CylinderRoot Primitive of a Clump.
LineConnection between two Primitives that share the same Assembly and Clump.
LineConnection between two Primitives that share the same Assembly.
LineConnection between two Primitives.

PhysicsEnvironmentalThrottle

Controls the throttle rate of Roblox's physics engine. By default, the physics engine will adjust the physics environment throttle depending on how much work the physics engine is doing, and the current framerate. See the enum page for EnviromentalPhysicsThrottle for more information.

ShowDecompositionGeometry

When set to true, the underlying collision geometry for PartOperation and MeshPart is rendered.

SolverConvergenceVisualizationMode

SolverConvergenceVisualizationMode
Roblox Script Security
Roblox Script Security

ThrottleAdjustTime

If the PhysicsSettings.PhysicsEnvironmentalThrottle is set to DefaultAuto, this specifies the maximum time that the physics environmental throttle has to wait before it is allowed to automatically change.

UseCSGv2

If set to true, version 2 of Roblox's CSG solver will be used instead of version 1.

Methods

Events