Skip to content

PhysicalProperties

Supported Datatype

Describes properties that affect the physical behavior of a BasePart.

Description

The PhysicalProperties data type describes several physical properties of a BasePart: Density, Elasticity, and Friction. It is used in the similarly-named BasePart.CustomPhysicalProperties property.

Weighting Behavior

PhysicalProperties also provides weightings properties, ElasticityWeight and FrictionWeight. When two parts interact, the friction and elasticity between them are determined in the same way by the following pairwise weighted average function:

local function getActualFriction(partA, partB)
    return (partA.Friction * partA.FrictionWeight + partB.Friction * partB.FrictionWeight) / (partA.FrictionWeight + partB.FrictionWeight)
end

Although the formula above refers to the Friction and FrictionWeight of two parts, A and B, the formula is used in the same manner when determining Elasticity. Generally, when the weight of A is much greater than that of B, the actual value will be closer to A. If the weights are similar, the actual value will be close to the midpoint between their individual values.

Constructors

new Supported Returns a PhysicalProperties with the default properties for the given material.
PhysicalProperties.new(material: Material)

Returns a PhysicalProperties with the default properties for the given material.

Returns a PhysicalProperties container, with the density, friction, and elasticity specified for this material.

new Supported Returns a PhysicalProperties with the specified density, friction, and elasticity.
PhysicalProperties.new(density: number, friction: number, elasticity: number)

Returns a PhysicalProperties with the specified density, friction, and elasticity.

Returns a PhysicalProperties container, with the specified density, friction, and elasticity.

new Supported Creates a PhysicalProperties container with the specified density, friction, elasticity, weight of friction, and weight…
PhysicalProperties.new(density: number, friction: number, elasticity: number, frictionWeight: number, elasticityWeight: number)

Creates a PhysicalProperties container with the specified density, friction, elasticity, weight of friction, and weight of elasticity.

new Supported Creates a PhysicalProperties container with the specified density, friction, elasticity, weight of friction, weight of…
PhysicalProperties.new(density: number, friction: number, elasticity: number, frictionWeight: number, elasticityWeight: number, acousticAbsorption: number)

Creates a PhysicalProperties container with the specified density, friction, elasticity, weight of friction, weight of elasticity, and acoustic absorption.

Properties

AcousticAbsorption Not yet A value between 0 and 1 denoting how absorbent the material is to AudioEmitters.
PhysicalProperties.AcousticAbsorption()

A value between 0 and 1 denoting how absorbent the material is to AudioEmitters. When using acoustic simulation, surfaces with higher absorption will result in less reverb than surfaces with lower absorption.

Note that this does not affect the degree to which audio transmits through surfaces; for that, see Density.

Density Supported The mass per unit volume of the part.
PhysicalProperties.Density()

The mass per unit volume of the part.

Density is defined as the amount of mass per unit volume. The more dense a part is, the more force it takes to accelerate it. Acceptable range is 0.0001 to 100.0 and values outside this range will be clamped.

When using acoustic simulation, parts with higher density will muffle occluded AudioEmitters more.

Friction Supported The deceleration of the part when rubbing against another part.
PhysicalProperties.Friction()

The deceleration of the part when rubbing against another part.

Friction is defined as the force that opposes the relative lateral motion of two solid surfaces in contact. The greater the friction on a part, the quicker it will decelerate when it rubs against another part with friction. Acceptable range is 0.0 to 2.0 and values outside this range will be clamped.

Elasticity Supported The amount of energy retained when colliding with another part.
PhysicalProperties.Elasticity()

The amount of energy retained when colliding with another part.

Elasticity refers to a part's tendency to retain energy when colliding with another part. An Elasticity of 1 indicates that the part bounces with the same energy it had before a collision. Acceptable range is 0.0 to 1.0 and values outside this range will be clamped.

FrictionWeight Supported The importance of the part's Friction property when calculating the friction with the colliding part.
PhysicalProperties.FrictionWeight()

The importance of the part's Friction property when calculating the friction with the colliding part.

The friction weight of two parts rubbing together creates a ratio used to calculate the actual friction between the two parts. The higher a part's FrictionWeight, the more its Friction is used. Acceptable range is 0.0 to 100.0 and values outside this range will be clamped.

ElasticityWeight Supported The importance of the part's Elasticity property when calculating the elasticity with the colliding part.
PhysicalProperties.ElasticityWeight()

The importance of the part's Elasticity property when calculating the elasticity with the colliding part.

The elasticity weight of two parts colliding creates a ratio used to calculate the actual elasticity between the two parts. The higher a part's ElasticityWeight, the more its Elasticity is used. Acceptable range is 0.0 to 100.0 and values outside this range will be clamped.

Nova binding inventory

Library Members
new Density, Elasticity, ElasticityWeight, Friction, FrictionWeight

Roblox reference: PhysicalProperties