Skip to main content
Version: latest - a1.156.0 ⚖️

💡 Light

A Light represents a Lighting source.

Client & Server🔁Not Distributable🧑‍💻API Source
👪Inheritance
This class shares methods and events from Base Entity, Base Actor.

🎒 Examples​

Server/Index.lua
local my_light = Light(
Vector(-152, 245, 115),
Rotator(0, 90, 90), -- Relevant only for Rect and Spot light types
Color(1, 0, 0), -- Red Tint
LightType.Point, -- Point Light type
100, -- Intensity
250, -- Attenuation Radius
44, -- Cone Angle (Relevant only for Spot light type)
0, -- Inner Cone Angle Percent (Relevant only for Spot light type)
5000, -- Max Draw Distance (Good for performance - 0 for infinite)
true, -- Whether to use physically based inverse squared distance falloff, where Attenuation Radius is only clamping the light's contribution. (Spot and Point types only)
true, -- Cast Shadows?
true -- Enabled?
)

🛠 Constructors​

Default Constructor​

No description provided

local my_light = Light(location, rotation?, color?, light_type?, intensity?, attenuation_radius?, cone_angle?, inner_cone_angle_percent?, max_draw_distance?, use_inverse_squared_falloff?, cast_shadows?, visible?, source_radius?, spawn_mode?)

Parameters

TypeNameDefaultDescription
Vectorlocation Required parameter World location to spawn at
RotatorrotationRotator(0, 0, 0)Relevant only for Rect and Spot LightTypes
ColorcolorColor(1, 1, 1)Color of the light
LightTypelight_typeLightType.PointPoint, Spot or Rect
floatintensity30Brightness of the light
floatattenuation_radius250Distance the light reaches
floatcone_angle44Relevant only for Spot LightType
floatinner_cone_angle_percent0Inner Cone Angle Percent (Relevant only for Spot LightType) (0-1)
floatmax_draw_distance10000Max Draw Distance (Good for performance) - 0 for infinite
booleanuse_inverse_squared_fallofftrueWhether to use physically based inverse squared distance falloff, where Attenuation Radius is only clamping the light's contribution. (Spot and Point types only)
booleancast_shadowstrueWhether the light casts shadows
booleanvisibletrueWhether the light starts visible
floatsource_radius2Radius of light source shape. (Spot and Point types only)
SpawnModespawn_modeSpawnMode.ImmediatePass SpawnMode.AfterConstructor or SpawnMode.Manual to avoid immediately sending the entity to clients and improve performance when you want to configure it by setting several configs. Must call FinishSpawn() after all
tip

nanos world provides 3 types of lights: Spot, Point and Rect. All lights are Dynamic and because of that, very expensive! Keep that in mind before spawning 1000 lights 😉.

🗿 Static Functions​

Inherited Entity Static Functions
Light inherits from Base Entity Class, sharing it's methods and functions:
Base Entityscripting-reference/classes/base-classes/entity
ReturnsNameDescription
table of Base EntityGetAllReturns a table containing all Entities of the class this is called on
Base EntityGetByIndexReturns a specific Entity of this class at an index
integerGetCountReturns how many Entities of this class exist
table of tableGetInheritedClassesGets a list of all directly inherited classes from this Class created with the Inheriting System
iteratorGetPairsReturns an iterator with all Entities of this class to be used with pairs()
table or nilGetParentClassGets the parent class if this Class was created with the Inheriting System
tableInheritInherits this class with the Inheriting System
booleanIsChildOfGets if this Class is child of another class if this Class was created with the Inheriting System
functionSubscribeSubscribes to an Event for all entities of this Class
functionSubscribeRemoteSubscribes to a custom event called from server
UnsubscribeUnsubscribes all callbacks from this Event in this Class within this Package, or only the callback passed

This class doesn't have own static functions.

🦠 Functions​

Inherited Entity Functions
Light inherits from Base Entity Class, sharing it's methods and functions:
Base Entityscripting-reference/classes/base-classes/entity
ReturnsNameDescription
BroadcastRemoteEventCalls a custom remote event directly on this entity to all Players
BroadcastRemoteInRadiusEventCalls a custom remote event directly on this entity to all Players in a radius
CallRemoteEventCalls a custom remote event directly on this entity to a specific Player
CallRemoteEventCalls a custom remote event directly on this entity
CallRemotePlayersEventCalls a custom remote event directly on this entity to a list of Players
DestroyDestroys this Entity
FinishSpawnFinish the spawning process and send the entity to clients if it was spawned with a deferred spawn_mode
table of stringGetAllValuesKeysGets a list of all values keys
tableGetClassGets the class of this entity
integerGetIDGets the universal network ID of this Entity (same on both client and server)
anyGetValueGets a Value stored on this Entity at the given key
booleanHasAuthorityGets if the local context has authority over this Entity (true if spawned by the client, false if spawned by the server)
booleanIsARecursively checks if this entity is inherited from a Class
booleanIsBeingDestroyedReturns true if this Entity is being destroyed
booleanIsSpawnedGets if this Entity finished spawning
booleanIsValidReturns true if this Entity is valid (i.e. wasn't destroyed and points to a valid Entity)
SetSpawnModeOverrides when this Entity finishes spawning, from the Constructor of an Inherited Class
SetValueSets a Value in this Entity
functionSubscribeSubscribes to an Event on this specific entity
functionSubscribeRemoteSubscribes to a custom event called from server on this specific entity
UnsubscribeUnsubscribes all callbacks from this Event in this Entity within this Package, or only the callback passed
Inherited Actor Functions
Light inherits from Base Actor Class, sharing it's methods and functions:
Base Actorscripting-reference/classes/base-classes/actor
ReturnsNameDescription
AddActorTagAdds an Unreal Actor Tag to this Actor
AddAngularImpulseAdd an angular impulse to this Actor. Good for one time instant burst
AddImpulseAdd an impulse to this Actor. Good for one time instant burst
booleanAttachToAttaches this Actor to any other Actor, optionally at a specific bone
DetachDetaches this Actor from AttachedTo Actor
table of stringGetActorTagsGets all Unreal Actor Tags on this Actor
VectorGetAngularForceGets this Actor's angular force (set by SetAngularForce())
floatGetAngularVelocityReturns the angular velocity of this Actor
table of Base ActorGetAttachedEntitiesGets all Actors attached to this Actor
Base Actor or nilGetAttachedToGets the Actor this Actor is attached to
stringGetAttachedToSocketGets the bone or socket name this Actor is attached to
tableGetBoundsGets this Actor's bounds, useful to know its size in the world
CollisionTypeGetCollisionGets this Actor's collision type
integerGetDimensionGets this Actor's dimension
floatGetDistanceFromCameraGets the distance of this Actor from the Camera
VectorGetForceGets this Actor's force (set by SetForce())
floatGetLifeSpanGets the time (in seconds) left before this Actor is destroyed
VectorGetLocationGets this Actor's location in the game world
floatGetMassReturns the mass of this Actor
Player or nilGetNetworkAuthorityGets this Actor's Network Authority Player
VectorGetRelativeLocationGets this Actor's Relative Location if it's attached
RotatorGetRelativeRotationGets this Actor's Relative Rotation if it's attached
RotatorGetRotationGets this Actor's angle in the game world
VectorGetScaleGets this Actor's scale
floatGetScreenPercentageGets the percentage of this Actor size in the screen
tableGetSocketTransformGets a Socket Transform in world space given a bone or socket name
VectorGetVelocityGets this Actor's current velocity
booleanHasNetworkAuthorityReturns true if the local Player is currently the Network Authority of this Actor
booleanIsGravityEnabledReturns true if gravity is enabled on this Actor
booleanIsInWaterReturns true if this Actor is in water
booleanIsNetworkDistributedReturns true if this Actor is currently network distributed
booleanIsVisibleReturns true if this Actor is visible
RemoveActorTagRemoves an Unreal Actor Tag from this Actor
RotateToSmoothly rotates this actor to an angle over a certain time
SetAngularForceAdds a permanent angular force to this Actor, set to Vector(0, 0, 0) to cancel
SetCastShadowSets this Actor's to cast shadows or not
SetCollisionSets this Actor's collision type
SetDimensionSets this Actor's Dimension. Actors only see and interact with entities in the same Dimension
SetDistanceOptimizationMultiplierSets this Actor's distance optimization multiplier
SetForceAdds a permanent force to this Actor, set to Vector(0, 0, 0) to cancel
SetGravityEnabledSets whether gravity is enabled on this Actor
SetHighlightEnabledSets whether the highlight is enabled on this Actor, and which highlight index to use
SetLifeSpanSets the time (in seconds) before this Actor is destroyed. After this time has passed, the actor will be automatically destroyed.
SetLocationSets this Actor's location in the game world
SetNetworkAuthoritySets the Player to have network authority over this Actor
SetNetworkAuthorityAutoDistributedSets if this Actor will auto distribute the network authority between players
SetOutlineEnabledSets whether the outline is enabled on this Actor, and which outline index to use
SetRelativeLocationSets this Actor's relative location in local space (only if this actor is attached)
SetRelativeRotationSets this Actor's relative rotation in local space (only if this actor is attached)
SetRenderCullDistanceSets this Actor's render cull distance
SetRotationSets this Actor's rotation in the game world
SetScaleSets this Actor's scale
SetVisibilitySets whether the actor is visible or not
TranslateToSmoothly moves this actor to a location over a certain time
booleanWasRecentlyRenderedGets if this Actor was recently rendered on screen
ReturnsNameDescription
floatGetAttenuationRadiusGets the distance this Light reaches
booleanGetCastShadowsGets if this Light casts shadows
ColorGetColorGets the color of this Light
floatGetIntensityGets the brightness of this Light
SetAttenuationRadiusSets the distance this Light reaches
SetCastShadowsSets if this Light casts shadows
SetColorSets the light color
SetIntensitySets the brightness of this Light
SetTextureLightProfileSets the light Texture Profile

Optimal

GetAttenuationRadius​

Gets the distance this Light reaches
local attenuation_radius = my_light:GetAttenuationRadius()

Returns

TypeDescription
floatThe attenuation radius

See also SetAttenuationRadius.


Optimal

GetCastShadows​

Gets if this Light casts shadows
local is_shadows_enabled = my_light:GetCastShadows()

Returns

TypeDescription
booleanWhether it casts shadows

See also SetCastShadows.


Optimal

GetColor​

Gets the color of this Light
local color = my_light:GetColor()

Returns

TypeDescription
ColorThe light color

See also SetColor.


Optimal

GetIntensity​

Gets the brightness of this Light
local intensity = my_light:GetIntensity()

Returns

TypeDescription
floatThe brightness

See also SetIntensity.


Optimal

SetAttenuationRadius​

Sets the distance this Light reaches
my_light:SetAttenuationRadius(attenuation_radius)

Parameters

TypeParameterDefaultDescription
floatattenuation_radius Required parameter The new attenuation radius

See also GetAttenuationRadius.


Optimal

SetCastShadows​

Sets if this Light casts shadows
my_light:SetCastShadows(is_shadows_enabled)

Parameters

TypeParameterDefaultDescription
booleanis_shadows_enabled Required parameter Whether it casts shadows

See also GetCastShadows.


Optimal

SetColor​

Sets the light color
my_light:SetColor(color)

Parameters

TypeParameterDefaultDescription
Colorcolor Required parameter The light color

See also GetColor.


Optimal

SetIntensity​

Sets the brightness of this Light
my_light:SetIntensity(intensity)

Parameters

TypeParameterDefaultDescription
floatintensity Required parameter The new brightness

See also GetIntensity.


Optimal

SetTextureLightProfile​

Sets the light Texture Profile
my_light:SetTextureLightProfile(light_profile)

Parameters

TypeParameterDefaultDescription
LightProfilelight_profile Required parameter The Light Profile to use

See also 💡 Light Profiles.

🚀 Events​

Inherited Entity Events
Light inherits from Base Entity Class, sharing it's events:
Base Entityscripting-reference/classes/base-classes/entity
NameDescription
ClassRegisterTriggered when a new Class is registered with the Inheriting System
DestroyTriggered when an Entity is destroyed
SpawnTriggered when an Entity is spawned/created
ValueChangeTriggered when an Entity has a value changed with :SetValue()
Inherited Actor Events
Light inherits from Base Actor Class, sharing it's events:
Base Actorscripting-reference/classes/base-classes/actor
NameDescription
DimensionChangeTriggered when an Actor changes its dimension
EnterWaterTriggered when an Actor enters a water body
LeaveWaterTriggered when an Actor leaves a water body
NetworkAuthorityChangeTriggered when an Actor changes its network authority Player
NetworkAuthorityChangeTriggered when the local Player gets/loses network authority over this actor

This class doesn't have own events.

💡 Light Profiles​

Light Profiles are texture files which describes a light's distribution from a light source using real world measured data.

tip

Please check Unreal Engine Light Profile documentation for more information about Light Profiles!

nanos world provides 50 Light Profiles included in the base game which you can use to enhance your Lights. You can set them using :SetTextureLightProfile() with the enum LightProfile.