PhysicsSettings
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.
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.
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.
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
Color | Body Type | Description |
Real Time Body | Physics Body that is always simulated in real time, and is never throttled. Used for Humanoids. | |
Free Fall Body | Physics Body that is freely moving with no physical contact. | |
Joint Body | Physics Body that is being influenced by a physically simulated joint, such as a Motor or a Hinge. | |
Contact Body | Physics Body that is in contact with another physics body. | |
Symmetric Contact Body | Physics Body that is experiencing a torquing force, while in contact with another body. | |
Vertical Contact Body | Physics 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.
Color | Contact Type | Description |
Normal Contact | Contact point with no special conditions. | |
Resting Contact | Contact point that has been active for at least 4 frames. | |
Second Pass Contact | Contact point that was made by a kernel joint going through a second pass. Rarely seen. | |
Real Time Contact | Contact point that was made with a real-time physics body. This applies to tripped `Class.Humanoid`. | |
Joint Contact | Contact point that was made under the context of a physically simulated joint. This applies to Motors and Hinges. |
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.
Color | Contact Type | Description |
Normal Contact | Contact 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
AreTerrainReplicationRegionsShown
AreTimestepsShown
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
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:
Color | Adorn Type | Description |
Box | Root Primitive of a Mechanism that is currently anchored, or connected to an anchored primitive. (See: `Class.BasePart:IsGrounded()`) | |
Box | Root Primitive of a Mechanism that is free to be physically simulated. | |
Box | Root Primitive of a Mechanism that has moving components. | |
Sphere | Root Primitive of an Assembly. | |
Cylinder | Root Primitive of a Clump. | |
Line | Connection between two Primitives that share the same Assembly and Clump. | |
Line | Connection between two Primitives that share the same Assembly. | |
Line | Connection 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
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.