Skip to content

PointLight

PointLight is a placeable light source that is a CoreObject.

Properties

Property Name Return Type Description Tags
hasNaturalFalloff boolean The attenuation method of the light. When enabled, attenuationRadius is used. When disabled, falloffExponent is used. Also changes the interpretation of the intensity property, see intensity for details. Read-Write
falloffExponent number Controls the radial falloff of the light when hasNaturalFalloff is false. 2.0 is almost linear and very unrealistic and around 8.0 it looks reasonable. With large exponents, the light has contribution to only a small area of its influence radius but still costs the same as low exponents. Read-Write
sourceRadius number Radius of light source shape. Read-Write
sourceLength number Length of light source shape. Read-Write

Examples

Example using:

falloffExponent

In this example, a Point Light's "falloff exponent" property animates over time, between a minimum and maximum value range. Note that it only works if "Natural Falloff" is enabled on the light.

local POINT_LIGHT = script.parent
local MIN_EXPONENT = 1
local MAX_EXPONENT = 20

function Tick()
    -- This makes `t` oscillate between 0 and 1
    local t = math.sin(time()) / 2 + 0.5
    POINT_LIGHT.falloffExponent = CoreMath.Lerp(MIN_EXPONENT, MAX_EXPONENT, t)
end

See also: CoreObject.parent | CoreMath.Lerp | Task.Wait


Example using:

hasNaturalFalloff

In this example, a Point Light's "natural falloff" property is toggled on/off over time.

local POINT_LIGHT = script.parent

function Tick()
    Task.Wait(1)
    POINT_LIGHT.hasNaturalFalloff = true

    Task.Wait(1)
    POINT_LIGHT.hasNaturalFalloff = false
end

See also: CoreObject.parent | Task.Wait


Example using:

sourceLength

In this example, a Point Light's "source length" property animates over time, between a minimum and maximum value range.

local POINT_LIGHT = script.parent
local MIN_LENGTH = 0
local MAX_LENGTH = 1000

function Tick()
    -- This makes `t` oscillate between 0 and 1
    local t = math.sin(time()) / 2 + 0.5
    POINT_LIGHT.sourceLength = CoreMath.Lerp(MIN_LENGTH, MAX_LENGTH, t)
end

See also: CoreObject.parent | CoreMath.Lerp | Task.Wait


Example using:

sourceRadius

In this example, a Point Light's "source radius" property animates over time, between a minimum and maximum value range.

local POINT_LIGHT = script.parent
local MIN_RADIUS = 0
local MAX_RADIUS = 500

function Tick()
    -- This makes `t` oscillate between 0 and 1
    local t = math.sin(time()) / 2 + 0.5
    POINT_LIGHT.sourceRadius = CoreMath.Lerp(MIN_RADIUS, MAX_RADIUS, t)
end

See also: CoreObject.parent | CoreMath.Lerp | Task.Wait



Last update: December 23, 2021