Entities Singleton

🧠 Entities Singleton

All live entity instances are tracked in the Entities singleton.

Entities = new EntitiesSingleton()

Methods provided

Function
Description

Entities:get(id)

Fetch a object instance from its uNetId

Entities:getBy(key, value)

Find an instance by a custom field, value can also be a function working as a filter

Entities:getAllBy(key, value)

Returns a table containing all instances that respect the filter, value can also be a function working as a filter

Entities:createByName(name)

Instantiate a new object of a class with that name

Example:

local open = Entities:getAllBy("state", function(state) return state.open end)

if open and #open > 0 then
    print(open[1].id.." is an open crate")
end
local specific = Entities:getBy("someCustomId", 100)

if specific then
    print(specific.id.." has the attribute someCustomId setted to 100")
end
local crates = Entities:getAllBy("__type", "Crate")

if crates and #crates > 0 then
    print(crates.id.." is a Crate!")
end

📦 Object Script Tracking

All object instances are stored in the Entities singleton:

Entities = new EntitiesSingleton()

Each object is uniquely identified by its uNetId

You can fetch or query entities at runtime:

local obj = Entities:get(id)                  -- By unique network ID
local crate = Entities:getBy("type", "Crate") -- By field match

CLIENT for an object to be available in the entities list, it must be rendered. SERVER always fully populated, allow to access or manipulate any object, no matter where it is in the world.


🔍 Debug & Tracking Tips

You can easily track which objects are active on the server via Entities.list.

Example: list all crates currently spawned:

for _, obj in pairs(Entities.list) do
    if obj is Crate then
        print("Active crate:", obj.id)
    end
end

Last updated