The VScript Book

Chapter 3.2: Finding Entities (Advanced)

Beyond finding by name or class, you can also find entities based on their location.

  • Entities.FindByClassnameWithin(start_ent, classname, origin, radius): Finds all entities of a type within a certain radius of a point.
  • Entities.FindInSphere(start_ent, origin, radius): Finds any entity within a radius.

Example: Activating nearby turrets.

// This script is on an entity that will be our activation point
local activationPoint = self.GetOrigin()
local activationRadius = 512.0

local turret = null
while(turret = Entities.FindByClassnameWithin(turret, "npc_portal_turret_floor", activationPoint, activationRadius)) {
    EntFireByHandle(turret, "Enable", "", 0, null, null)
}