Skip to main content

Portal

The portal library allows you to get information about portals. You can get the position, angles, whether the portal is active, it's transformation matrix, and more.

Example

portal/lua/scripts/portal_example.lua
local blue = portal.blue()

if blue:is_active() then
console.msg("Blue Portal is active at pos %s", blue:get_entity():get_pos())
else
console.msg("Blue Portal is not active")
end

local linked = blue:get_linked()

if linked then
console.msg("Blue Portal is linked to %s", linked:get_entity():get_pos())
else
console.msg("Blue Portal is not linked")
end

local closest = portal.closest()

if closest then
console.msg("Closest Portal is %s", closest:get_entity():get_pos())
else
console.msg("No Portals are active")
end

Documentation


portal.list()

Returns a list of all portals.

Returns

  • portal[] (Portals): A list of all portals.

Example

local portals = portal.list()
for _, p in ipairs(portals) do
console.msg("Portal: %s", p:get_entity():get_name())
end

portal.closest()

Returns the closest portal.

Returns

  • portal? (Closest portal): The closest portal, or nil if there isn't one.

Example

local closestPortal = portal.closest()
if closestPortal then
console.msg("Closest Portal: %s", closestPortal:get_entity():get_name())
end

portal.from_entity(entity)

Returns the portal linked to the specified entity.

Parameters

  • entity (entity): The portal's entity.

Returns

  • portal? (Linked portal): The portal linked to this entity, or nil if it's not a portal.

Example

local entity = entity.from_id(123)
local linkedPortal = portal.from_entity(entity)
if linkedPortal then
console.msg("Linked Portal: %s", linkedPortal:get_entity():get_name())
end

portal.from_id(entity_id)

Returns the portal linked to the entity with the specified ID.

Parameters

  • entity_id (number): The portal's entity ID.

Returns

  • portal? (Linked portal): The portal linked to the entity with this ID, or nil if it doesn't exist or isn't a portal.

Example

local linkedPortal = portal.from_id(456)
if linkedPortal then
console.msg("Linked Portal: %s", linkedPortal:get_entity():get_name())
end

portal.blue()

Returns the blue portal.

Returns

  • portal? (Blue portal): The blue portal. If there are multiple blue portals, it returns the first one found.

Example

local bluePortal = portal.blue()
if bluePortal then
console.msg("Blue Portal: %s", bluePortal:get_entity():get_name())
end

portal.orange()

Returns the orange portal.

Returns

  • portal? (Orange portal): The orange portal. If there are multiple orange portals, it returns the first one found.

Example

local orangePortal = portal.orange()
if orangePortal then
console.msg("Orange Portal: %s", orangePortal:get_entity():get_name())
end

portal:get_linkage_id()

Returns the linkage ID of the portal.

Returns

  • number (Linkage ID): The portal's linkage ID.

Example

local linkageID = portal:get_linkage_id()
console.msg("Linkage ID: %d", linkageID)

portal:get_linked()

Returns the linked portal of the portal.

Returns

  • portal? (Linked portal): The portal's linked portal.

Example

local linkedPortal = portal:get_linked()
if linkedPortal then
console.msg("Linked Portal: %s", linkedPortal:get_entity():get_name())
end

portal:get_matrix()

Returns the transformation matrix of the portal.

Returns

  • mat4? (Transformation matrix): The portal's transformation matrix, or nil if the portal isn't linked.

Example

local matrix = portal:get_matrix()
if matrix then
console.msg("Transformation Matrix: %s", tostring(matrix

))
end

portal:is_active()

Checks if the portal is active.

Returns

  • boolean (Is active): true if the portal is active, false otherwise.

Example

local isActive = portal:is_active()
console.msg("Is Active: %s", tostring(isActive))

portal:is_orange()

Checks if the portal is orange.

Returns

  • boolean (Is orange): true if the portal is orange, false otherwise.

Example

local isOrange = portal:is_orange()
console.msg("Is Orange: %s", tostring(isOrange))

portal:is_blue()

Checks if the portal is blue.

Returns

  • boolean (Is blue): true if the portal is blue, false otherwise.

Example

local isBlue = portal:is_blue()
console.msg("Is Blue: %s", tostring(isBlue))

portal:get_entity()

Returns the entity of the portal.

Returns

  • entity (Portal entity): The portal's entity.

Example

local entity = portal:get_entity()
console.msg("Portal Entity: %s", entity:get_name())