GE Lua Documentation

Press F to search!

findObjectById

Definition


-- @/=[C]:-1
function findObjectById(...)

Callers

@/lua/ge/extensions/gameplay/walk.lua
  -- Reset the alpha to 1 when switching away from a unicycle
  local unicycle = scenetree.findObjectById(oldId)
  if unicycle and unicycle.getJBeamFilename and unicycle:getJBeamFilename() == "unicycle" then
@/lua/ge/extensions/gameplay/markers/bigmapMarker.lua
  if cluster.id then
    iconRendererObj = scenetree.findObjectById(self.iconRendererId)
    if iconRendererObj then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObjectById(self.iconRendererId)
    if iconRendererObj then
@/lua/ge/extensions/career/modules/loanerVehicles.lua
      function(step, vehId)
        local vehObj = scenetree.findObjectById(vehId)
        core_vehicleBridge.executeAction(vehObj, 'initPartConditions', {}, offer.vehMileage or 0, 1, 1)
@/lua/ge/extensions/gameplay/drag/dragBridge.lua
M.startDragRace = function(vehicleId, lane)
  local veh = vehicleId and scenetree.findObjectById(vehicleId) or be:getPlayerVehicle(0)
  if not veh then
@/lua/ge/extensions/editor/objectTool.lua
    local xform = MatrixF(true)
    local obj = scenetree.findObjectById(editor.selection.object[#editor.selection.object])
    if not obj then return end
  for _, id in ipairs(editor.selection.object) do
    local obj = scenetree.findObjectById(id)
    if obj then
  for i, id in ipairs(objectIDs) do
    local obj = scenetree.findObjectById(id)
    parentIds[i] = tonumber(obj:getField("parentGroup", 0))
        local newGroup = nil
        if parentIds and parentIds[i] then newGroup = scenetree.findObjectById(tonumber(parentIds[i])) end
        local grp = newGroup or missionGroup
  for i, id in ipairs(actionData.objectIds) do
    scenetree.findObjectById(id):setPosition(actionData.newPositions[i])
  end
    for i, id in ipairs(editor.selection.object) do
      table.insert(newPositions, scenetree.findObjectById(editor.selection.object[i]):getPosition() + delta)
    end
  for i, id in ipairs(actionData.objects) do
    scenetree.findObjectById(id):setPosition(actionData.newPositions[i])
  end
  for i, id in ipairs(actionData.objects) do
    scenetree.findObjectById(id):setPosition(actionData.oldPositions[i])
  end
  for i, id in ipairs(editor.selection.object) do
    local obj = scenetree.findObjectById(id)
    if obj:getClassName() ~= 'SimGroup' then   -- ignores groups
  for i = 1, tableSize(editor.selection.object) do
    objects[i] = scenetree.findObjectById(editor.selection.object[i])
    if not editor.canManipulateObject(objects[i]) then
    for i = 1, tableSize(editor.selection.object) do
      local obj = scenetree.findObjectById(editor.selection.object[i])
      if obj and obj.getTransform then
  for i = 1, tableSize(editor.selection.object) do
    objects[i] = scenetree.findObjectById(editor.selection.object[i])
    if not editor.canManipulateObject(objects[i]) then
  for _, id in ipairs(editor.selection.object) do
    local obj = scenetree.findObjectById(id)
    if obj then
  for i = 1, tableSize(editor.selection.object) do
    objects[i] = scenetree.findObjectById(editor.selection.object[i])
    if not editor.canManipulateObject(objects[i]) then
    for i = 1, tableSize(editor.selection.object) do
      local obj = scenetree.findObjectById(editor.selection.object[i])
      if obj then
        local objId = editor.selection.object[1]
        local obj = scenetree.findObjectById(objId)
    if objectIdByIconClick and objectIdByIconClick ~= 0 then
      local object = scenetree.findObjectById(objectIdByIconClick)
      if worldEditorCppApi.getClassIsSelectable(object:getClassName())
    for i = 1, tableSize(editor.selection.object) do
      local obj = scenetree.findObjectById(editor.selection.object[i])
      table.insert(selectedObjects, obj)
    for _, objId in ipairs(editor.selection.object) do
      local obj = scenetree.findObjectById(objId)
      if obj and obj.isLocked and obj:isLocked() then
  if editor.selection.object and editor.selection.object[1] then
    groupID = scenetree.findObjectById(editor.selection.object[1]):getField("parentGroup", 0)
  end
        local xform = MatrixF(true)
        local obj = scenetree.findObjectById(id)
        if editor.getAxisGizmoAlignment() == editor.AxisGizmoAlignment_Local then
  if selectedId and fieldName == "startTime" then
    local object = scenetree.findObjectById(selectedId)
    if object and object:getClassName() == "TimeOfDay" then
@/lua/ge/extensions/flowgraph/nodes/scene/pointOnDecalroad.lua
  if self.pinIn.roadId.value ~= self.oldRoadId then
    self.roadObj = scenetree.findObjectById(self.pinIn.roadId.value)
@/lua/ge/extensions/flowgraph/nodes/types/transform.lua
    if im.Button("Copy from current Selection") then
      local obj = scenetree.findObjectById(editor.selection.object[1])
      if not obj then return end
    if not self.pinIn.objID.value then return end
    local obj = scenetree.findObjectById(self.pinIn.objID.value)
    if not obj then return end
@/lua/ge/extensions/gameplay/drift/stuntZones/nearPole.lua
  local markerOffset = vec3(0, 0, 2.5)
  local veh = scenetree.findObjectById(self.activeData.veh:getId())
  if veh then
@/lua/ge/extensions/editor/gen/terrain.lua
    for roadID,_ in pairs(rdlist) do
        local rd = scenetree.findObjectById(roadID)
        if rd then
    if not rd then return end
    local obj = scenetree.findObjectById(rd.id)
    if obj then
@/lua/ge/extensions/editor/roadUtils.lua
local function randomizeDecoration(decoID, factor)
  local decoGroup = scenetree.findObjectById(decoID)
    local decoObjectID = decoGroup:at(i):getID()
    local decoObject = scenetree.findObjectById(decoObjectID)
    local oldPos = decoObject:getPosition()
  for decoID in string.gmatch(decorationIDs, "%d+") do
    local object = scenetree.findObjectById(tonumber(decoID))
    if object then
            local decalID = editor.createRoad(decalNodes, decalSettings)
            editor.updateRoadVertices(scenetree.findObjectById(decalID))
            editor.setDynamicFieldValue(decalID, "isDecal", "true", false)

      local childRoad = scenetree.findObjectById(childRoadID)
      childRoad:setField('canSave', 0, "0")
  for roadID, _ in pairs(allRoadsCopy) do
    local road = scenetree.findObjectById(roadID)
@/lua/ge/extensions/editor/meshSpline.lua
              if spline.sceneTreeFolderId then
                local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
                if folder then
    for _, objId in ipairs(editor.selection.object) do
      local obj = scenetree.findObjectById(objId)
      if obj and obj:getClassName() == "TSStatic" then
@/lua/ge/extensions/flowgraph/nodes/vehicle/boost.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/core/cameraModes/crash.lua
  self.camMode = data.camMode
  local veh1 = scenetree.findObjectById(data.veh1Id)
  local bb1 = veh1:getSpawnWorldOOBB()
  if data.veh2Id and (self.camMode == 1 or self.camMode == 2 and math.random() > 0.5) then
    local veh2 = scenetree.findObjectById(data.veh2Id)
    local driverNode = core_camera.getDriverDataById(veh2:getId())
function C:update(data)
  local veh1 = scenetree.findObjectById(self.veh1Id)
  local bb1 = veh1:getSpawnWorldOOBB()
  if self.veh2Id then
    veh2 = scenetree.findObjectById(self.veh2Id)
    bb2 = veh2:getSpawnWorldOOBB()
@/lua/ge/extensions/gameplay/drag/saveSystem.lua
  if data.prefabs.christmasTree and data.prefabs.christmasTree.isUsed and data.prefabs.christmasTree.prefabId then
    local prefabObj = scenetree.findObjectById(data.prefabs.christmasTree.prefabId)
    if prefabObj then
  if data.prefabs.displaySign and data.prefabs.displaySign.isUsed and data.prefabs.displaySign.prefabId then
    local prefabObj = scenetree.findObjectById(data.prefabs.displaySign.prefabId)
    if prefabObj then
  if data.prefabs.decorations and data.prefabs.decorations.isUsed and data.prefabs.decorations.prefabId then
    local prefabObj = scenetree.findObjectById(data.prefabs.decorations.prefabId)
    if prefabObj then
  if data.prefabs.paths and data.prefabs.paths.isUsed and data.prefabs.paths.prefabId then
    local prefabObj = scenetree.findObjectById(data.prefabs.paths.prefabId)
    if prefabObj then
@/lua/ge/extensions/flowgraph/nodes/vehicle/beamstate/reset.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/gameplay/removeOtherVehicles.lua
    if delete then
      local obj = scenetree.findObjectById(id)
@/lua/ge/extensions/scenario/raceMarkers/cylinderMarker.lua
  for _, id in ipairs(self._ids or {}) do
    local obj = scenetree.findObjectById(id)
    if obj then
@/lua/ge/extensions/flowgraph/nodes/vehicle/fire/fire.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  end
@/lua/ge/extensions/editor/api/valueInspector.lua
      editor.pickingLinkTo = {}
      editor.pickingLinkTo.child = Sim.findObjectById(self.selectedIds[1])
      editor.pickingLinkTo.selectionObjectIds = deepcopy(self.selectedIds)
      if fieldType == "GameBaseData" then
        local obj = Sim.findObjectById(self.selectedIds[1])
        --searchForClassname = obj:getClassName()
              if fieldType == "ParticleEmitterData" then
                local o = scenetree.findObjectById(self.selectedIds[1])
                if o then
                if o then
                  local dblock = scenetree.findObjectById(dataBlocksTbl[fieldValue])
                  if dblock then o:setEmitterDataBlock(dblock) end
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceHighscoresComplete.lua
      if self.pinIn.vehId.value then
        veh = scenetree.findObjectById(self.pinIn.vehId.value)
      else
@/lua/ge/extensions/editor/trafficSignalsEditor.lua

  local selectedObj = scenetree.findObjectById(editor.selection.object[1])
  local validIds = {}
      for _, oid in ipairs(currInstance.tempSignalObjects) do
        local obj = scenetree.findObjectById(oid)
        if obj and obj.shapeName then
@/lua/ge/extensions/flowgraph/nodes/vehicle/applyVelocity.lua
function C:work()
  local veh = self.pinIn.vehId.value and scenetree.findObjectById(self.pinIn.vehId.value) or getPlayerVehicle(0)
  if not veh then return end
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/trackVehicleDistanceToPos.lua
--   if self.pinIn.vehId.value then
--     veh = scenetree.findObjectById(self.pinIn.vehId.value)
--   else
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/vehicle/getGearboxMode.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/gameplay/missions/gridmap_v2/collection/002-blenderbowl/script.lua
      if math.random() < (timer-5)*0.25 then
        local veh = scenetree.findObjectById(id)
        if veh then
  for _, id in ipairs(ballIds) do
    local ball = scenetree.findObjectById(id)
    if ball then
function C:onVehicleReset(id)
  local veh = scenetree.findObjectById(id)
  if not veh then return end
@/lua/ge/extensions/flowgraph/nodes/vehicle/beamstate/breakgroup.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/career/modules/delivery/vehicleTasks.lua
    -- check if close enough to destination
    local trailerVeh = scenetree.findObjectById(taskData.vehId)
    local trailerPos = trailerVeh:getPosition()
    -- check if parked in spot and uncoupled
    local trailerVeh = scenetree.findObjectById(taskData.vehId)
    local destinationPs = dGenerator.getParkingSpotByPath(activeTask.destination.psPath)
    end
    local veh = scenetree.findObjectById(taskData.vehId)
    if veh then veh:delete() end

    local unicycle = scenetree.findObjectById(unicycleId)
    if unicycle then
    end
    local veh = scenetree.findObjectById(taskData.vehId)
    if veh then veh:delete() end
    end
    local veh = scenetree.findObjectById(taskData.vehId)
    if veh then veh:delete() end
@/lua/ge/extensions/editor/assemblySpline.lua
              if spline.sceneTreeFolderId then
                local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
                if folder then
    for _, objId in ipairs(editor.selection.object) do
      local obj = scenetree.findObjectById(objId)
      if obj and obj:getClassName() == "TSStatic" then
@/lua/ge/extensions/gameplay/discover.lua
-- use this to get the position, rotation and partConfig of all vehicles
for id in activeVehiclesIterator() do local veh = scenetree.findObjectById(id) print(veh) dump({veh:getPosition(), quatFromDir(veh:getDirectionVector(), veh:getDirectionVectorUp()), veh.jbeam, veh.partConfig}) end
]]
@/lua/ge/extensions/flowgraph/nodes/vehicle/beamstate/couple.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/gameplay/util/damageAssessment.lua
  end
  local veh = scenetree.findObjectById(vehId)
  local oobb = veh:getSpawnWorldOOBB()
@/lua/ge/extensions/career/modules/tether.lua
local function checkCapsuleTetherWithVeh(t)
  local veh = scenetree.findObjectById(t.vehId)
  if not veh then return true end

  local veh = scenetree.findObjectById(t.vehId)
  if not veh then return end
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleMapData.lua
  if self.pinIn.vehId.value then
    local veh = scenetree.findObjectById(self.pinIn.vehId.value)
    if veh then vehId = self.pinIn.vehId.value end
    self.pinOut.active.value = vehicleData.active
    self.pinOut.newAPIDamage.value = scenetree.findObjectById(vehId):getSectionDamageSum()
    self.pinOut.damage.value = vehicleData.damage
@/lua/ge/extensions/gameplay/speedTraps.lua
    if vehSpeed > triggerSpeed then
      local triggerObj = scenetree.findObjectById(data.triggerID)
      if not triggerObj then return end
@/lua/ge/extensions/editor/createObjectTool.lua
  if editor.selection.object and not tableIsEmpty(editor.selection.object) then
    local obj = scenetree.findObjectById(editor.selection.object[1])
    if obj and (obj:getClassName() == "SimSet" or obj:isSubClassOf("SimSet")) then
@/lua/ge/extensions/editor/gen/exp_meshexplorer.lua
    for id, veh in activeVehiclesIterator() do
        local om = scenetree.findObjectById(veh:getId())
        if om then om:delete() end
        local tveh = spawn.spawnVehicle('metal_box', nil, vec3(0,0,0), quat(0,0,1,0))
        scenetree.findObjectById(tveh:getId()):delete()
        cobj = spawn.spawnVehicle(amodel[env.ui['model_up']], nil, vec3(0,0,0), quat(0,0,1,0)):getId()
        end
        local vo = scenetree.findObjectById(pvd.id)
        local box = vo:getWorldBox()
--            table.insert(res, veh)
--            scenetree.findObjectById(veh:getID()):delete()
        end
                if true then
                    scenetree.findObjectById(id):delete()
                    local veh = spawn.spawnVehicle(model, nil, vec3(1,3,4), quat(0,0,1,0))
                    end
                    spawn.setVehicleObject(scenetree.findObjectById(id), options)
                end
            else
                scenetree.findObjectById(id):delete()
            end
            local id = obj:getID()
            obj = scenetree.findObjectById(id)
        pvd = extensions.core_vehicle_manager.getPlayerVehicleData()
--            local vo = scenetree.findObjectById(pvd.id)
        beamdata.anode = pvd.vdata.nodes
        beamdata.anode = pvd.vdata.nodes
            lo('?? to_ghost:'..tostring(cpreview)..':'..tostring(cobj)..':'..tostring(scenetree.findObjectById(cobj):getPosition()))
        beamdata.ds = -pvd.vdata.nodes[pvd.vdata.refNodes[0].ref].pos -- + scenetree.findObjectById(cpreview):getPosition()
            lo('?? to_ghost:'..tostring(cpreview)..':'..tostring(cobj)..':'..tostring(scenetree.findObjectById(cobj):getPosition()))
        beamdata.ds = -pvd.vdata.nodes[pvd.vdata.refNodes[0].ref].pos -- + scenetree.findObjectById(cpreview):getPosition()
    beamdata.anode = pvd.vdata.nodes
    beamdata.ds = -pvd.vdata.nodes[pvd.vdata.refNodes[0].ref].pos -- + scenetree.findObjectById(cpreview):getPosition()
    beamdata.ds = beamdata.ds + amesh[1].body:getPosition()
--                lo('?? for_VEH:'..tostring(veh:getId()))
                local om = scenetree.findObjectById(veh:getId())
--                lo('?? if_PREV:'..tostring(cpreview)..':'..tostring(om))
                    lo('?? mid:'..tostring(tveh))
                scenetree.findObjectById(tveh:getId()):delete()
                spawn.spawnVehicle(amodel[env.ui['model_up']], nil, vec3(0,0,0), quat(0,0,1,0))
--                lo('?? for_VEH:'..tostring(veh:getId()))
                local om = scenetree.findObjectById(veh:getId())
--                lo('?? if_PREV:'..tostring(cpreview)..':'..tostring(om))
                local tveh = spawn.spawnVehicle('metal_box', nil, vec3(0,0,0), quat(0,0,1,0))
                scenetree.findObjectById(tveh:getId()):delete()
                spawn.spawnVehicle(amodel[env.ui['model_up']], nil, vec3(0,0,0), quat(0,0,1,0))
--                    lo('?? if_PO:'..tostring(po.id)..':'..tostring(po:getId()))
--                    local om = scenetree.findObjectById(po:getId())
--                    lo('?? if_PREV:'..tostring(cpreview)..':'..tostring(om))
            for i,id in pairs(aveh) do
                scenetree.findObjectById(id):delete()
            end

        local om = scenetree.findObjectById(cpreview)
        if om then om:delete() end
        for i,id in pairs(aveh) do
            scenetree.findObjectById(id):delete()
        end
            pvd = extensions.core_vehicle_manager.getPlayerVehicleData()
--            local vo = scenetree.findObjectById(pvd.id)
            beamdata.anode = pvd.vdata.nodes
            beamdata.anode = pvd.vdata.nodes
                lo('?? to_ghost:'..tostring(cpreview)..':'..tostring(cobj)..':'..tostring(scenetree.findObjectById(cobj):getPosition()))
            beamdata.ds = -pvd.vdata.nodes[pvd.vdata.refNodes[0].ref].pos -- + scenetree.findObjectById(cpreview):getPosition()
                lo('?? to_ghost:'..tostring(cpreview)..':'..tostring(cobj)..':'..tostring(scenetree.findObjectById(cobj):getPosition()))
            beamdata.ds = -pvd.vdata.nodes[pvd.vdata.refNodes[0].ref].pos -- + scenetree.findObjectById(cpreview):getPosition()
            if cpreview then
                local om = scenetree.findObjectById(cpreview)
                if om then
        if co then
            local box = scenetree.findObjectById(co):getWorldBox()
            z = box.maxExtents.z - box.minExtents.z
        if co then
            local box = scenetree.findObjectById(co):getWorldBox()
            z = box.maxExtents.z - box.minExtents.z
        if env.ui[key] == val then
            local om = scenetree.findObjectById(cpreview)
            if om then om:delete() end
            for i,id in pairs(aveh) do
                scenetree.findObjectById(id).hidden = false
            end
        for i,id in pairs(aveh) do
            scenetree.findObjectById(id).hidden = true
        end
            for i,m in pairs(amesh) do
                local obj = scenetree.findObjectById(m.id)
                if obj then
                        lo('?? for_VEH:'..tostring(veh:getId()))
                        local om = scenetree.findObjectById(veh:getId())
                        lo('?? if_PREV:'..tostring(cpreview)..':'..tostring(om))
                        local tveh = spawn.spawnVehicle('metal_box', nil, vec3(0,0,0), quat(0,0,1,0))
                        scenetree.findObjectById(tveh:getId()):delete()
                        spawn.spawnVehicle('pickup', nil, vec3(0,0,0), quat(0,0,1,0))
--                    lo('?? if_PO:'..tostring(po.id)..':'..tostring(po:getId()))
--                    local om = scenetree.findObjectById(po:getId())
--                    lo('?? if_PREV:'..tostring(cpreview)..':'..tostring(om))
@/lua/ge/extensions/core/environment.lua
    if envObjectIdCache[className] == 0 then return nil end
    return scenetree.findObjectById(envObjectIdCache[className])
  end
local function getCloudCoverByID(objectID)
  local cloudObj = scenetree.findObjectById(objectID)
  local cloud
local function setCloudCoverByID(objectID, coverage)
  local cloudObj = scenetree.findObjectById(objectID)
  local cloud
local function getCloudExposureByID(objectID)
  local cloudObj = scenetree.findObjectById(objectID)
  local exposure
local function setCloudExposureByID(objectID, exposure)
  local cloudObj = scenetree.findObjectById(objectID)
  local cloud
local function getCloudWindByID(objectID)
  local cloudObj = scenetree.findObjectById(objectID)
  local windSpeed
local function setCloudWindByID(objectID, windSpeed)
  local cloudObj = scenetree.findObjectById(objectID)
  local cloud
local function getCloudHeightByID(objectID)
  local cloudObj = scenetree.findObjectById(objectID)
  local height
local function setCloudHeightByID(objectID, height)
  local cloudObj = scenetree.findObjectById(objectID)
  local cloud
@/lua/ge/extensions/gameplay/drag/general.lua

  local vehicle = scenetree.findObjectById(vehicleId)
  if not vehicle or vehicle.className ~= "BeamNGVehicle" then
@/gameplay/missions/gridmap_v2/delivery/004-obstaclecourse/script.lua
function C:onVehicleReset(id)
  local veh = scenetree.findObjectById(id)
  if not veh then return end
@/lua/ge/extensions/gameplay/drift/sounds.lua
local function updateContinuousDriftSoundParameters()
  local sound = scenetree.findObjectById(continuousDriftSoundId)
  if sound then

  local sound = scenetree.findObjectById(soundId)
  if sound and (isSoundPlaying[soundId] == not active or not isSoundPlaying[soundId]) then
@/lua/ge/extensions/editor/assetBrowser.lua
local function createObjectUndo(actionData)
  local obj = Sim.findObjectById(actionData.objectId)
  if obj then
      if var.editorLastSelection then
        local obj = scenetree.findObjectById(var.editorLastSelection)
        if obj then
    --  Gets asset file path
    local object = scenetree.findObjectById(node.id)
    local assetPath = object:getModelFile() --node.upcastedObject:getModelFile()
      if node then
        local object = scenetree.findObjectById(node.id)
        -- Applicable for TSStatic objects
@/lua/ge/extensions/editor/particleEditor.lua
local function createEmitterActionUndo(actionData)
  local emitter = scenetree.findObjectById(actionData.id)
  editor.removeDataBlockFromFile(emitter)
    actionData.id = editor.createDataBlock(newEmitterName, "ParticleEmitterData", "DefaultEmitter", defaultEmitterFile)
    emitter = scenetree.findObjectById(actionData.id)
  else
  else
    emitter = scenetree.findObjectById(actionData.id)
    Sim.getDataBlockSet():addObject(emitter)
local function deleteEmitterActionUndo(actionData)
  local emitter = scenetree.findObjectById(actionData.id)
  editor.addDataBlockToFile(emitter, emitter:getFileName())
local function deleteEmitterActionRedo(actionData)
  local emitter = scenetree.findObjectById(actionData.id)
  editor.removeDataBlockFromFile(emitter)
local function createParticleActionUndo(actionData)
  local particle = scenetree.findObjectById(actionData.particleID)
  local emitter = scenetree.findObjectById(actionData.emitterID)
  local particle = scenetree.findObjectById(actionData.particleID)
  local emitter = scenetree.findObjectById(actionData.emitterID)
    actionData.emitterID = emitter:getID()
    particle = scenetree.findObjectById(actionData.particleID)
  else
  else
    particle = scenetree.findObjectById(actionData.particleID)
    emitter = scenetree.findObjectById(actionData.emitterID)
    particle = scenetree.findObjectById(actionData.particleID)
    emitter = scenetree.findObjectById(actionData.emitterID)
    Sim.getDataBlockSet():addObject(particle)
local function deleteParticleActionUndo(actionData)
  local particle = scenetree.findObjectById(actionData.particleID)
  local emitter = scenetree.findObjectById(actionData.emitterID)
  local particle = scenetree.findObjectById(actionData.particleID)
  local emitter = scenetree.findObjectById(actionData.emitterID)
  emitter:setField("particles", "", emitter:getField("particles", "") .. "\t" .. particle:getName())
local function deleteParticleActionRedo(actionData)
  local particle = scenetree.findObjectById(actionData.particleID)
  local emitter = scenetree.findObjectById(actionData.emitterID)
  local particle = scenetree.findObjectById(actionData.particleID)
  local emitter = scenetree.findObjectById(actionData.emitterID)
@/lua/ge/extensions/editor/terrainMaterialsEditor.lua
local function propertyUndo(actionData)
  local obj = scenetree.findObjectById(actionData.objectId)
  if obj then
local function propertyRedo(actionData)
  local obj = scenetree.findObjectById(actionData.objectId)
  if obj then
@/lua/ge/extensions/flowgraph/nodes/ui/updatedUI/endScreenLapTimesPanel.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/editor/roadTemplateEditor.lua
  for _, id in ipairs(decorations) do
    scenetree.findObjectById(id):deleteObject()
    clearSelection = true
    local decoInfo = {}
    local decoObject = scenetree.findObjectById(id)
    for _, field in ipairs(decoObject:getDynamicFields()) do
      if im.Button("Clone##Decoration") then
        local selectedDeco = scenetree.findObjectById(decorations[decorationSelectionIndex[0]+1])
        local cloneID = createDecoObject()
        -- Delete the selected deco object
        scenetree.findObjectById(decorations[decorationSelectionIndex[0]+1]):deleteObject()
        table.remove(decorations, decorationSelectionIndex[0]+1)
@/lua/ge/extensions/flowgraph/nodes/scene/raceLineParking.lua
  if self.pinIn.vehicleID.value then
    veh = scenetree.findObjectById(self.pinIn.vehicleID.value)
  else
@/lua/vehicle/extensions/tech/techCore.lua
  local targetName = request['target']
  obj:queueGameEngineLua('scenetree.findObjectById(' .. obj:getID() .. '):queueLuaCommand("ai.setTargetObjectID(" .. scenetree.findObject(\'' .. targetName .. '\'):getID() .. ")")')
  request:sendACK('AiTargetSet')
@/gameplay/missions/automation_test_track/flowgraph/001-Dam/customNodes/hitTargetNode.lua
function C:work()
  if not scenetree.findObjectById(self.pinIn.vehId.value or 0) or not scenetree.findObjectById(self.pinIn.targetId.value or 0) then
    self:onNodeReset()
function C:work()
  if not scenetree.findObjectById(self.pinIn.vehId.value or 0) or not scenetree.findObjectById(self.pinIn.targetId.value or 0) then
    self:onNodeReset()

  local veh = scenetree.findObjectById(self.pinIn.vehId.value)
  local target = scenetree.findObjectById(self.pinIn.targetId.value)
  local veh = scenetree.findObjectById(self.pinIn.vehId.value)
  local target = scenetree.findObjectById(self.pinIn.targetId.value)
  local oobb = veh:getSpawnWorldOOBB()
@/lua/ge/extensions/editor/api/object.lua
  for _, objId in ipairs(editor.selection.object) do
    local obj = scenetree.findObjectById(objId)
    if obj and obj.getTransform then
  for i = 1, tableSize(editor.selection.object) do
    local obj = Sim.findObjectById(editor.selection.object[i])
    if obj and obj.getWorldBox then
local function getFieldValue(objectId, fieldName, arrayIndex)
  local obj = Sim.findObjectById(objectId)
  if arrayIndex and arrayIndex >= 0 then arrayIndex = tostring(arrayIndex) elseif not arrayIndex then arrayIndex = "" end
    for _, objId in ipairs(objectIds) do
      local obj = scenetree.findObjectById(objId)
      if obj then obj:setSelected(selected or false) end
  if objectId then
    local obj = scenetree.findObjectById(objectId)
    if obj then obj:setSelected(selected) end
local function setFieldValue(objectId, fieldName, value, arrayIndex)
  local obj = Sim.findObjectById(objectId)
  if obj then
local function setDynamicFieldValue(objectId, fieldName, value, arrayIndex)
  local obj = Sim.findObjectById(objectId)
  if obj then
local function getFieldInfo(objectId, fieldName)
  local obj = Sim.findObjectById(objectId)
  if obj then
local function getFields(objectId)
  local obj = Sim.findObjectById(objectId)
  if obj then
local function getDynamicFields(objectId)
  local obj = Sim.findObjectById(objectId)
  if obj then
  for i = 2, tableSize(editor.selection.object) do
    local object = Sim.findObjectById(editor.selection.object[i])
    if object then
    if i ~= baseObjIndex then
      local object = Sim.findObjectById(editor.selection.object[i])
      if object then
  end
  local object = Sim.findObjectById(editor.selection.object[1])
  if not object then
  for i = 1, tableSize(editor.selection.object) do
    local object = Sim.findObjectById(editor.selection.object[i])
    if canManipulateObject(object) then
  for i = 1, tableSize(editor.selection.object) do
    local object = Sim.findObjectById(editor.selection.object[i])
    if canManipulateObject(object) then
  for i = 1, tableSize(editor.selection.object) do
    local object = Sim.findObjectById(editor.selection.object[i])
    if canManipulateObject(object) then
  for i = 1, tableSize(editor.selection.object) do
    local object = Sim.findObjectById(editor.selection.object[i])
    if canManipulateObject(object) then
  for i = 1, tableSize(editor.selection.object) do
    local object = Sim.findObjectById(editor.selection.object[i])
    if canManipulateObject(object) and object.getPosition then
  for i = 1, tableSize(editor.selection.object) do
    local object = Sim.findObjectById(editor.selection.object[i])
    if editor.canManipulateObject(object) then
  for i = 1, tableSize(editor.selection.object) do
    objects[i] = Sim.findObjectById(editor.selection.object[i])
    local object = objects[i]
  for i, id in ipairs(objects) do
    local object = scenetree.findObjectById(id)
    local level = getObjectLevel(object)

    local currentObject = scenetree.findObjectById(id)
    if currentObject and currentObject:getClassName() == "SimGroup" then
          local childObjId = groupData[index]
          local child = scenetree.findObjectById(childObjId)
          if child then

    local currentObject = scenetree.findObjectById(id)
    if currentObject and currentObject:getClassName() == "SimGroup" then
          local childObjId = groupData[index]
          local child = scenetree.findObjectById(childObjId)
          if child then
  for i = 1, tableSize(editor.selection.object) do
    local obj = scenetree.findObjectById(editor.selection.object[i])
    if obj then table.insert(stack, obj) end
  for i = 1, #editor.selection.object do
    local obj = scenetree.findObjectById(editor.selection.object[i])
    if obj then
  for i = 1, #editor.selection.object do
    local obj = scenetree.findObjectById(editor.selection.object[i])
    if obj and obj:getClassName() == "Prefab" then
  for i = 1, #editor.selection.object do
    local obj = scenetree.findObjectById(editor.selection.object[i])
    if obj then
  for i = 1, tableSize(editor.selection.object) do
    local object = Sim.findObjectById(editor.selection.object[i])
    if object then
    for i = 1, tableSize(editor.selection.object) do
      local selectedObject = scenetree.findObjectById(editor.selection.object[i])
      if selectedObject and selectedObject:getClassName() == classname then
  for _, id in ipairs(selection) do
    if scenetree.findObjectById(id) then
      table.insert(objectIds, id)
  local objId = Sim.deserializeObjectFromText(cleanedJsonString, true, true)
  local obj = scenetree.findObjectById(objId)
  if obj and name then
@/lua/ge/extensions/editor/gen/test.lua
        for _,o in pairs(list) do
            local om = scenetree.findObjectById(tonumber(o))
                lo('?? if_DEL:'..tostring(o)..':'..tostring(om))
		for _,o in pairs(list) do
			local om = scenetree.findObjectById(tonumber(o))
			if om then
--			W.houseDown(d)
--			scenetree.findObjectById(d.id):delete()
				break
		local m = obj:at(1)
		local originalMesh = scenetree.findObjectById(m:getID())
			lo('?? if_OBJ:'..tostring(inspect)..':'..tostring(m.obj)..':'..tostring(m:getID())..':'..tostring(originalMesh)) --..':'..tostring(nodes)) --..tostring(editor.getNodes(m)))
					clear()
--					local obj = scenetree.findObjectById(desc.id)
--					obj:delete()
			-- cleanup
			local obj = scenetree.findObjectById(dlod.id)
			obj:delete()
@/lua/ge/extensions/gameplay/discover/discover_037.lua
                end
                if not scenetree.findObjectById(limoId) then
                  step.complete = true
@/lua/ge/extensions/gameplay/markers/crawlMarker.lua

  iconRendererObj = scenetree.findObjectById(self.iconRendererId)
@/lua/ge/extensions/flowgraph/nodes/vehicle/shiftToGearIndex.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/core/forest.lua
local function getForestObject()
  local forest = forestId and scenetree.findObjectById(forestId)
  if not forest then
@/lua/ge/spawn.lua
      end
      local sgPpointID = scenetree.findObjectById(spawngroupPoint:getId())
      if not sgPpointID then
  if dps then
    return scenetree.findObjectById(dps.obj:getId())
  end
  end
  if gameConnection and gameConnection.player and scenetree.findObjectById(gameConnection.player) then
    log('E', logTag, 'Attempting to create a player for a client that already has one!')
  if gameConnection and gameConnection.freeCamera then
    local freeCamera = scenetree.findObjectById(tonumber(gameConnection.freeCamera))
    if freeCamera then
  -- Spawn the trailer behind the vehicle
  local car = scenetree.findObjectById(carID)
  local carBB = car:getSpawnWorldOOBB()

  local trailer = scenetree.findObjectById(trailerID)
  local trailerBB = trailer:getSpawnWorldOOBB()
@/lua/ge/extensions/career/modules/testDrive.lua

      local veh = scenetree.findObjectById(vehicleId)
      local oobb = veh:getSpawnWorldOOBB()
@/lua/ge/extensions/tech/impactgen/crashOutput.lua
    local ground = scenetree.findClassObjects('GroundPlane')[1]
    ground = scenetree.findObjectById(ground)
    ground:setField('material', 0, groundMat)
@/lua/ge/extensions/freeroam/bigMapMode.lua
  if airSoundId then
    local sound = scenetree.findObjectById(airSoundId)
    if sound then
  if not transitionActive then
    local iconRenderer = scenetree.findObjectById(iconRendererId)
    local playerVehicle = getPlayerVehicle(0)
local function activateBigMapCallback()
  local iconRenderer = scenetree.findObjectById(iconRendererId)
  if not iconRenderer then return end
  if stopTransitionSound and transitionSoundId then
    local sfxSource = scenetree.findObjectById(transitionSoundId)
    if sfxSource then

  local sound = scenetree.findObjectById(airSoundId)
  if sound then
  end
  local sound = scenetree.findObjectById(airSoundId)
  if sound then

  local iconRenderer = scenetree.findObjectById(iconRendererId)
  if iconRenderer then
  if not transitionActive then
    local iconRenderer = scenetree.findObjectById(iconRendererId)
    if iconRenderer then
@/lua/ge/extensions/editor/materialEditor.lua
local function propertyUndo(actionData)
  local obj = scenetree.findObjectById(actionData.objectId)
  if obj then
local function propertyRedo(actionData)
  local obj = scenetree.findObjectById(actionData.objectId)
  if obj then
@/lua/ge/extensions/editor/inspector.lua
    for k, v in ipairs(editor.getObjectSelection()) do
      local obj = scenetree.findObjectById(v)
      -- we call inspectUpdate so the objects compute internal things and return true if inspector needs to be refreshed

  local firstObj = scenetree.findObjectById(valueInspector.selectedIds[1])
      local firstId = valueInspector.selectedIds[1]
      local obj = scenetree.findObjectById(firstId)
      if obj then
        local groundCoverId = valueInspector.selectedIds[#valueInspector.selectedIds]
        local groundCover = scenetree.findObjectById(groundCoverId)
        local groundCoverMaterialName = groundCover:getField("Material", "")
  if editor.pickingLinkTo and #editor.selection.object then
    -- local pid = Sim.findObjectById(editor.selection.object[1]):getOrCreatePersistentID() -- Note: 11/06/2024 - Only TerrainMaterial and DecalRoad still have persistent id. Persistent Id will soon be no more.
    -- editor.pickingLinkTo.child:setField("linkToParent", 0, pid)
@/lua/ge/extensions/editor/sidewalkSpline/splineMgr.lua
  -- Create a new scene tree folder for the sidewalk spline.
  if not spline.sceneTreeFolderId or not scenetree.findObjectById(spline.sceneTreeFolderId) then
    local newFolder = createObject("SimGroup")
  if spline.sceneTreeFolderId then
    local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
    if folder then
    if data.isUpdateSceneTree then
      local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
      if folder then
@/lua/ge/extensions/flowgraph/nodes/vehicle/colors.lua
  local veh = self.pinIn.vehId.value or be:getPlayerVehicleID(0)
  local obj = scenetree.findObjectById(veh)
@/lua/ge/extensions/core/paths.lua
    if markerId >= 0 then
      local marker = scenetree.findObjectById(markerId)
      if marker then
@/gameplay/missionTypes/collection/customNodes/collectionNode.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/editor/gen/decal.lua
for id,_ in pairs(rdlist) do
    local obj = scenetree.findObjectById(id)
--        lo('?? if_ROAD:'..tostring(id)..':'..tostring(obj))
            local rd = adec[ind]
            if rd and scenetree.findObjectById(rd.id) then
                if rd and U._PRD == 0 then
                editor.deleteObject(tonumber(o))
--                scenetree.findObjectById(tonumber(o)):delete()
--                o:delete()
            local rd = adec[ind]
            if rd and scenetree.findObjectById(rd.id) then
                if rd.listrad then
    for id,_ in pairs(adec) do
        local obj = scenetree.findObjectById(id)
--            lo('?? for_DEC:'..id..':'..tostring(obj))
        for roadID,_ in pairs(rdlist) do
            local rd = scenetree.findObjectById(roadID)
    --                lo('?? PI:'..tostring(`rd and rd:getOrCreatePersistentID())) -- getField('material')) or) --rd.persistentId))
    for id,_ in pairs(rdlist) do
        local obj = scenetree.findObjectById(id)
        if not obj then
        for i,rd in pairs(adec) do
            local obj = scenetree.findObjectById(rd.id)
            if obj then
    if not rd then return end
    local obj = scenetree.findObjectById(rd.id)
    if obj then
                editor_roadUtils.reloadDecals(rd)
                rd = scenetree.findObjectById(roadID)
                list = editor.getNodes(rd)
    --    {{pos = apos[1], width = w, drivability = 1}},
    local road = scenetree.findObjectById(id)
    road:setField('material', 0, desc.mat or default.mat)
    for i = 1, tableSize(editor.selection.object) do
        local selectedObject = scenetree.findObjectById(editor.selection.object[i])
            lo('?? SO:'..tostring(selectedObject:getClassName()))
--              local id = editor.selection.object[i]
              croad = scenetree.findObjectById(editor.selection.object[i])
                    lo('?? R_seld:'..tostring(croad))
    else
        --    croad = scenetree.findObjectById(editor.selection.object[1])
        croad = scenetree.findObjectById(cpick)
        --    croad = scenetree.findObjectById(editor.selection.object[1])
        croad = scenetree.findObjectById(cpick)
        --            lo('>> ter2road:'..tostring(editor.selection.object[1]))
    return croad or #apick --and croad:getField("material", "") ~= 'WarningMaterial'
--    return tableSize(editor.selection.object) == 1 and scenetree.findObjectById(editor.selection.object[1]):getClassName() == "DecalRoad"
--    return croad

    local obj = scenetree.findObjectById(rd.id)
    obj:setField('hidden', 0, 'true')
--            for roadID, _ in pairs(rdlist) do
                local road = scenetree.findObjectById(roadID)
                if road and not rd.skip and #U.index(askip,rd.id) == 0 and (not road.name or string.find(road.name, 'line_') ~= 1) then
                out.apoint = nil
                croad = scenetree.findObjectById(cpick)
                        local ind = inAdec(cpick)
    if im.IsMouseClicked(0) and inView() and rayCast then
            lo('?? D.click:'..tostring(rayCast.pos)..':'..tostring(out.pdrag)..':'..tostring(cmover)..':'..tostring(cmover and scenetree.findObjectById(cmover):getOrCreatePersistentID() or nil))
        if editor.keyModifiers.shift then

                    croad = scenetree.findObjectById(cpick)
                            local ind = inAdec(cpick)
--                forRoad()
--            local rd = scenetree.findObjectById(roadID)
--                lo('?? PI:'..tostring(rd and rd:getOrCreatePersistentID())) -- getField('material')) or) --rd.persistentId))
@/lua/ge/extensions/editor/roadSpline.lua
              if group.sceneTreeFolderId then
                local folder = scenetree.findObjectById(group.sceneTreeFolderId)
                if folder then
  if node then
    local object = scenetree.findObjectById(node.id)
    if object then
@/lua/ge/extensions/core/sounds.lua
local function initEngineSound(vehicleId, engineId, jsonPath, nodeIdArray, noloadVol, loadVol)
  local vehicle = scenetree.findObjectById(vehicleId)
  if vehicle then
local function initExhaustSound(vehicleId, engineId, jsonPath, nodeIdPairArray, noloadVol, loadVol)
  local vehicle = scenetree.findObjectById(vehicleId)
  if vehicle then
local function updateEngineSound(vehicleId, engineId, rpm, onLoad, engineVolume)
  local vehicle = scenetree.findObjectById(vehicleId)
  if not vehicle then return end
local function setEngineSoundParameter(vehicleId, engineId, paramName, paramValue)
  local vehicle = scenetree.findObjectById(vehicleId)
  if not vehicle then return end
local function setEngineSoundParameterList(vehicleId, engineId, parameters)
  local vehicle = scenetree.findObjectById(vehicleId)
  if not vehicle then return end
local function setExhaustSoundNodes(vehicleId, engineId, nodeIdPairArray)
  local vehicle = scenetree.findObjectById(vehicleId)
  if not vehicle then return end
@/lua/ge/extensions/flowgraph/nodes/vehicle/setGearbox.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/customVlua.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/career/modules/inventory.lua

  local vehicle = scenetree.findObjectById(vehId)
  local vehicleData = core_vehicle_manager.getVehicleData(vehId)
local function applyPartConditions(inventoryId, vehId)
  local veh = scenetree.findObjectById(vehId or inventoryIdToVehId[inventoryId])
  if not veh then return end
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/vehicleStoppedNearPlane.lua

  veh = scenetree.findObjectById(self.pinIn.vehId.value)
  if not veh then
@/lua/ge/extensions/flowgraph/nodes/vehicle/beamstate/reload.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleWheels.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/environment/planet.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
    if self.pinIn.vehId.value then
      veh = scenetree.findObjectById(self.pinIn.vehId.value)
    else
@/lua/ge/extensions/scenario/positionGoal.lua
    end
    local vehicle = scenetree.findObjectById(instance.vId)
    if endobj and vehicle then
@/lua/ge/extensions/scenario/raceMarkers/attention.lua
  for _, id in ipairs(self._ids or {}) do
    local obj = scenetree.findObjectById(id)
    if obj then
@/gameplay/missionTypes/crawl/customNodes/getDynamicObjectsFromPrefabNode.lua
function C:workOnce()
  local prefab = scenetree.findObjectById(self.pinIn.prefabId.value)
  local dynamicObjects = {}
@/gameplay/missionTypes/cannon/customNodes/MarkersNode.lua
  for _, id in ipairs(vehIds) do
    local veh = scenetree.findObjectById(id)
    if veh and not self.mgr.modules.vehicle:getVehicle(id).dead then
@/lua/ge/extensions/gameplay/discover/discover_038.lua
        for _, vehId in ipairs(scenetree.findClassObjects("BeamNGVehicle")) do
          local vehicle = scenetree.findObjectById(tonumber(vehId))
          local name = vehicle:getInternalName()
        for _, vehId in ipairs(scenetree.findClassObjects("BeamNGVehicle")) do
          local vehicle = scenetree.findObjectById(tonumber(vehId))
          local name = vehicle:getInternalName()
        M.onVehicleSwitched = function(oldId, newId, player)
          local newVeh = scenetree.findObjectById(newId)
          if newVeh and newVeh:getName() == "truck" then
@/lua/ge/extensions/ui/uiNavi.lua
  if headless_mode then return end
  local targetVeh = vehId and scenetree.findObjectById(vehId) or  getPlayerVehicle(0)
  if targetVeh then
@/lua/ge/extensions/career/modules/fuel.lua
local function activateSound(soundId, active)
  local sound = scenetree.findObjectById(soundId)
  if sound then
  local relativeFuelLevel = getRelativeFuelLevel()
  local sound = scenetree.findObjectById(gasSoundId)
  if sound then
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/vehicleStoppedNearPos.lua
--   if self.pinIn.vehId.value then
--     veh = scenetree.findObjectById(self.pinIn.vehId.value)
--   else
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/editor/measuresInspectorHeader.lua
  if tableSize(selection.object) == 1 then
    local obj = scenetree.findObjectById(selection.object[1])
    local localBBox
@/lua/ge/extensions/gameplay/markers/missionMarker.lua
  if self.iconMeshId and (missionIconAlpha > 0 or self.missionIconAlphaLastFrame > 0) then
    local meshObj = scenetree.findObjectById(self.iconMeshId)
    if meshObj then
  -- setting up the icon
  iconRendererObj = scenetree.findObjectById(self.iconRendererId)
  if iconRendererObj then
  if self.iconMeshId then
    local meshObj = scenetree.findObjectById(self.iconMeshId)
    if meshObj then
  if self.iconMeshId then
    local meshObj = scenetree.findObjectById(self.iconMeshId)
    if meshObj then
@/lua/ge/extensions/gameplay/race/race.lua
function C:getVehiclePosition(id)
  local veh = scenetree.findObjectById(id)
  if veh then
  core_camera.resetCamera(0)
  --local veh = scenetree.findObjectById(id)
  --veh:resetBrokenFlexMesh()
@/lua/ge/extensions/editor/api/camera.lua
local function deleteCameraBookmark(objectId)
  local obj = scenetree.findObjectById(objectId)
  if obj then
local function jumpToCameraBookmark(objectId)
  local obj = Sim.findObjectById(objectId)
  if obj then
@/lua/ge/extensions/scenario/driftGoal.lua
    local fobjData = map.objects[map.objectNames[instance.vehicleName]]
    local vehicle = scenetree.findObjectById(instance.vId)
    if fobjData then
@/lua/ge/extensions/flowgraph/nodes/scene/getPointOnDecalroad.lua
  if self.pinIn.roadId.value ~= self.oldRoadId then
    self.roadObj = scenetree.findObjectById(self.pinIn.roadId.value)
@/flowgraphEditor/Tower/customNodes/towerNode.lua
    for _, id in ipairs(allChildrenIds) do
      local obj = scenetree.findObjectById(id)
      if obj:getInternalName() == "start" then
    for _, id in ipairs(allChildrenIds) do
      local obj = scenetree.findObjectById(id)
      local pos, rot = obj:getPosition(), quat(obj:getRotation())
@/lua/ge/extensions/scenario/raceMarkers/sideHologramMarker.lua

  leftPillar = scenetree.findObjectById(self.leftId)
  if leftPillar then
  end
  rightPillar = scenetree.findObjectById(self.rightId)
  if rightPillar then

  leftCone = scenetree.findObjectById(self.leftConeId)
  if leftCone then
  end
  rightCone = scenetree.findObjectById(self.rightConeId)
  if rightCone then

  leftColumn = scenetree.findObjectById(self.leftColumnId)
  if leftColumn then
  end
  rightColumn = scenetree.findObjectById(self.rightColumnId)
  if rightColumn then

  leftCylinder = scenetree.findObjectById(self.leftCylinderId)
  if leftCylinder then
  end
  rightCylinder = scenetree.findObjectById(self.rightCylinderId)
  if rightCylinder then

  arrow = scenetree.findObjectById(self.arrowId)
  if arrow and self.nextPos then

  leftPillar = scenetree.findObjectById(self.leftId)
  if leftPillar then
  end
  rightPillar = scenetree.findObjectById(self.rightId)
  if rightPillar then

  leftColumn = scenetree.findObjectById(self.leftColumnId)
  if leftColumn then
  end
  rightColumn = scenetree.findObjectById(self.rightColumnId)
  if rightColumn then

  leftCone = scenetree.findObjectById(self.leftConeId)
  if leftCone then
  end
  rightCone = scenetree.findObjectById(self.rightConeId)
  if rightCone then

  leftCylinder = scenetree.findObjectById(self.leftCylinderId)
  if leftCylinder then
  end
  rightCylinder = scenetree.findObjectById(self.rightCylinderId)
  if rightCylinder then
  self.visible = v
  -- base = scenetree.findObjectById(self.baseId)
  -- if base then
  -- end
  leftPillar = scenetree.findObjectById(self.leftId)
  if leftPillar then
  end
  rightPillar = scenetree.findObjectById(self.rightId)
  if rightPillar then
  end
  leftColumn = scenetree.findObjectById(self.leftColumnId)
  if leftColumn then
  end
  rightColumn = scenetree.findObjectById(self.rightColumnId)
  if rightColumn then
  end
  leftCone = scenetree.findObjectById(self.leftConeId)
  if leftCone then
  end
  rightCone = scenetree.findObjectById(self.rightConeId)
  if rightCone then
  end
  leftCylinder = scenetree.findObjectById(self.leftCylinderId)
  if leftCylinder then
  end
  rightCylinder = scenetree.findObjectById(self.rightCylinderId)
  if rightCylinder then
  end
  arrow = scenetree.findObjectById(self.arrowId)
  if arrow then
  if id then
    local obj = scenetree.findObjectById(id)
    if obj then obj:delete() end
@/lua/ge/extensions/editor/waterObjectHelper.lua
    if fieldName == "rippleTex" or fieldName == "foamTex" or fieldName == "depthGradientTex" or fieldName == "cubemap" then
      local object = scenetree.findObjectById(selectedIds[i])
      if object:isSubClassOf("WaterObject") then
@/lua/ge/extensions/core/vehicle/manager.lua
    vehicles[oldID].activePlayer = nil
    local vehicle = scenetree.findObjectById(oldID)
    if not vehicle then return end
local function liveUpdateVehicleColors(objID, _vehicleObj, index, paint)
  local vehicleObj = _vehicleObj or scenetree.findObjectById(objID)
  if not vehicleObj or not vehicles[objID] or not vehicles[objID].config or not vehicles[objID].config.paints then return end
  id = id or be:getPlayerVehicleID(0)
  local vehicle = scenetree.findObjectById(id)
  if not vehicle or not paintNames then return end
@/lua/ge/extensions/gameplay/markers/walkingMarker.lua

  iconRendererObj = scenetree.findObjectById(self.iconRendererId)
  for idx, ntuple in ipairs(cluster.doors or {}) do
    --simpleDebugText3d(idx, area.iconPos, 0.25)
    screenObjTemp = scenetree.findObjectById(area.screenObjId) or nil
    if area.screenObjId then
      screenObjTemp = scenetree.findObjectById(area.screenObjId)
      if screenObjTemp then screenObjTemp:setHidden(true) end
    if area.screenObjId then
      screenObjTemp = scenetree.findObjectById(area.screenObjId)
      if screenObjTemp then screenObjTemp:setHidden(true) end
@/lua/ge/extensions/flowgraph/modules/vehicleModule.lua
    if not data.ready then
      local veh = scenetree.findObjectById(id)
      if veh then
  local data = self.vehicles[id]
  local veh = scenetree.findObjectById(id)
  data.ready = true
  end
  local veh = scenetree.findObjectById(id)
  if veh then
    self.vehicles[id].dontDelete = keep
    local prefab = Prefab.getPrefabByChild(scenetree.findObjectById(id))
    --print("preabid: " .. prefab:getID())
    --[[
    local veh = scenetree.findObjectById(id)
    if veh then
      local parentId = tonumber(veh:getField("parentGroup", 0))
      local parent = scenetree.findObjectById(parentId)
      if parent then
    if not data.dontDelete then
      local obj = scenetree.findObjectById(id)
      if obj then
      -- restore fuel if needed
      local veh = scenetree.findObjectById(id)
      for _, tank in ipairs(self.vehicles[id].storedEnergyStorage or {}) do
  if not id then return end
  local veh = scenetree.findObjectById(id)
  if veh then
  if not id then return end
  local veh = scenetree.findObjectById(id)
  if veh then
function C:registerBusChangeNotification(id)
  local veh = scenetree.findObjectById(id)
  if veh then
function C:requestBusStop(id, data)
  local veh = scenetree.findObjectById(id)
  if veh then
@/lua/ge/extensions/editor/gen/world.lua
			-- TODO: a TerrainBlock with the same name has been found: can we overwrite it?
			terrBlock = scenetree.findObjectById(tbData.id)
			lo('?? forTB:'..tostring(terrBlock))
		for id,d in pairs(adesc) do
			local obj = scenetree.findObjectById(id)
			if obj then
			scenetree.findObject('edit'):deleteAllObjects()
			local obj = scenetree.findObjectById(desc.id)
			if obj then
		-- save edited
		local om = scenetree.findObjectById(adesc[cedit.mesh].idstatic)
		lo('?? proc2stat:'..cedit.mesh..':'..tostring(nm)..':'..tostring(adesc[cedit.mesh].idstatic))
			for _,o in pairs(list) do
				local om = scenetree.findObjectById(tonumber(o))
				if om then
			if wp.id then
				local obj = scenetree.findObjectById(wp.id)
				if obj then obj:delete() end
			for id,_ in pairs(adec) do
				local obj = scenetree.findObjectById(id)
				if obj then
		for id,desc in pairs(adesc) do
			local obj = scenetree.findObjectById(id)
			if obj ~= nil then
	if desc.id then
		scenetree.findObjectById(desc.id):delete()
	end
			if c.id then
				scenetree.findObjectById(c.id):delete()
			end
				if c.id then
					local obj = scenetree.findObjectById(c.id)
					obj:delete()
						-- cleanup
						scenetree.findObjectById(c.id):delete()
						forestClean(c)
					if c.id then
						local obj = scenetree.findObjectById(c.id)
						obj:delete()
		end
		om = scenetree.findObjectById(toedit)
		if om then
				if wp.id then
--                        lo('?? to_DEL:'..k..':'..tostring(scenetree.findObjectById(wp.id)))
					scenetree.findObjectById(wp.id):delete()
--                        lo('?? to_DEL:'..k..':'..tostring(scenetree.findObjectById(wp.id)))
					scenetree.findObjectById(wp.id):delete()
--                    wp.id = nil
										--lo('??^^^^^^^^^^^^ if_WID:'..tostring(w.id))
									local wo = scenetree.findObjectById(w.id)
									if wo then
--                        lo('?? for_wall:'..tostring(w.id)..':'..i..':'..j)
				local wall = scenetree.findObjectById(w.id)
				if wall ~= nil then
					-- update
					local obj = scenetree.findObjectById(dsc.id)
--                        lo('?? r2:',true)
				if f.top.id ~= nil then
					local otop = scenetree.findObjectById(f.top.id)
					if otop then
			if f.top.border and f.top.border.id then
				local border = scenetree.findObjectById(f.top.border.id)
--                    lo('??+++++++++++++++++++++ if_BORDER:'..tostring(border)..':'..tostring(f.top.border.yes))
--                            lo('?? wp_ID:'..i..':'..tostring(wp.id),true)
						local wallplus = scenetree.findObjectById(wp.id)
		--                    lo('?? for_DIRTY:'..tostring(wallplus)..':'..tostring(f.awplus.id),true)
			id = toedit
			local obj = scenetree.findObjectById(id)
--                    if not indrag then lo('?? to_update:'..id..':'..#out.avedit) end
			id = desc.id
			local obj = scenetree.findObjectById(id)
			if obj then
	scenetree.findObject('edit'):deleteAllObjects()
	scenetree.findObjectById(id):delete()
	adesc[id] = nil
	-- cleanup
	local lodobj = scenetree.findObjectById(dlod.id)
	if lodobj then lodobj:delete() end
	--        mesh.uvs = auv
			local obj = scenetree.findObjectById(id)
			obj:createMesh({})
			mesh.uvs = auv
			local obj = scenetree.findObjectById(w.id)
			obj:createMesh({})
--    aedit[idobj]
	local obj = scenetree.findObjectById(idobj)
--    obj:createMesh({{{}}})
			lo('?? for_ID:'..tostring(desc.afloor[2].awall[2].id))
			local wo = scenetree.findObjectById(desc.afloor[2].awall[2].id)
			wo:delete()
		if c.id then
			scenetree.findObjectById(c.id):delete()
		end
		if wp.id then
			scenetree.findObjectById(wp.id):delete()
		end
		for i,c in pairs(desctop.achild) do
		local cobj = scenetree.findObjectById(c.id)
			if cobj then
			if floor.awall[ij[2]].id then
				scenetree.findObjectById(floor.awall[ij[2]].id):delete()
			end
		if id ~= nil then
			nm = scenetree.findObjectById(id).name
		end
			partOn(id)
			local part = scenetree.findObjectById(cedit.part)
			if part then
		local key = forKey(rayCast)
			U.dump(cij, '?? for_cij0:'..tostring(key)) --..':'..tostring(dforest[key].mesh)..':'..scenetree.findObjectById(dforest[key].mesh).name)
		if not cij and not cedit.mesh then
			if key and dforest[key].mesh then
				local obj = scenetree.findObjectById(dforest[key].mesh)
				if obj then nm = obj.name end
				-- to edit
				local obj = scenetree.findObjectById(id)
				local ext = obj:getObjectBox():getExtents()
		if cedit.part ~= nil then
			local obj = scenetree.findObjectById(cedit.part)
			if obj ~= nil then
			if cedit.part ~= nil then
				local obj = scenetree.findObjectById(cedit.part)
				if obj ~= nil and string.find(obj.name, 'o_lid_') == 1 then nm = obj.name end

--    local obj = scenetree.findObjectById(cedit.mesh)
--    lo('?? goAround:'..tostring(obj:getPosition()))
		forestClean(w)
		scenetree.findObjectById(w.id):delete()
		aedit[w.id] = nil
  if floor.top.id then
    local otop = scenetree.findObjectById(floor.top.id)
    if otop then
    for i,c in pairs(floor.top.achild) do
      local cobj = scenetree.findObjectById(c.id)
      if cobj then
			scenetree.findObject('edit'):deleteAllObjects()
			scenetree.findObjectById(cedit.mesh):delete()
			adesc[cedit.mesh] = nil
				forestClean(w)
				scenetree.findObjectById(w.id):delete()
				aedit[w.id] = nil
			forestClean(floor.top)
			scenetree.findObjectById(floor.top.id):delete()
			aedit[floor.top.id] = nil
		scenetree.findObject('edit'):deleteAllObjects()
		scenetree.findObjectById(desc.id):delete()
				lo('?? RESTORE:'..csave..':'..tostring(asave[csave])..'-'..desc.id)
									forestClean(w)
									scenetree.findObjectById(w.id):delete()
								end
								forestClean(floor.top)
								scenetree.findObjectById(floor.top.id):delete()
													lo('?? to_del:'..w.id)
												scenetree.findObjectById(w.id):delete()
											end
									-- wall down
									scenetree.findObjectById(floor.awall[jmi].id):delete()
									forestClean(floor.awall[jmi])
				end
				local obj = scenetree.findObjectById(w.id)
				obj:createMesh({})
			forestClean(s)
			local om = scenetree.findObjectById(s.id)
			if om then
			for _,o in pairs(list) do
				local om = scenetree.findObjectById(tonumber(o))
					lo('?? if_DEL:'..tostring(o)..':'..tostring(om))
				lo('?? for_TEST:'..tostring(W.out.testOM.id))
				local obj = scenetree.findObjectById(W.out.testOM.id)
				obj:createMesh({{}})
		if #floor.top.achild == 1 then
			local obj = scenetree.findObjectById(floor.top.achild[1].id)
			if obj then
--                        lo('?? to_rem:'..floor.awplus[ic].id)
					scenetree.findObjectById(floor.awplus[ic].id):delete()
				end
--        if id then
--            scenetree.findObjectById(id):delete()
--        end
					forestClean(w)
					scenetree.findObjectById(w.id):delete()
				end
				forestClean(desc.afloor[#desc.afloor].top)
				scenetree.findObjectById(floor.top.id):delete()
					for _,c in pairs(floor.top.achild) do
						scenetree.findObjectById(c.id):delete()
					end
				if w.id then
					scenetree.findObjectById(w.id):delete()
				end
--                lo('?? to_del:'..j..':'..tostring(w.id), true)
--                scenetree.findObjectById(w.id):delete()
			end
				lo('?? REBUILD:',true)
--!!                scenetree.findObjectById(desc.afloor[cij[1]].top.id):delete()
--            roofSet('gable')
@/lua/ge/extensions/editor/forestEditor.lua
local forestItemSortByNameFunc = function(a, b)
  local aObj = scenetree.findObjectById(a.id)
  local bObj = scenetree.findObjectById(b.id)
  local aObj = scenetree.findObjectById(a.id)
  local bObj = scenetree.findObjectById(b.id)
  return string.lower(aObj.internalName or "unnamed") < string.lower(bObj.internalName or "unnamed")
local forestBrushElemSortByNameFunc = function(a, b)
  local aObj = scenetree.findObjectById(a.id)
  local bObj = scenetree.findObjectById(b.id)
  local aObj = scenetree.findObjectById(a.id)
  local bObj = scenetree.findObjectById(b.id)
  return string.lower(aObj.internalName) < string.lower(bObj.internalName)
    editor.selectObjectById(var.selectedForestBrushes[1].id)
    local obj = scenetree.findObjectById(var.selectedForestBrushes[1].id)
    local shapeFilename = ""
    editor.selectObjectById(var.selectedForestItemDatas[1].id)
    local obj = scenetree.findObjectById(var.selectedForestItemDatas[1].id)
    local shapeFilename = ""
  if group then
    local obj = scenetree.findObjectById(group.id)
    if obj then
  local objId = editor.createDataBlock(name, "ForestItemData", nil, editor.levelPath .. "art/forest/managedItemData.json")
  local obj = scenetree.findObjectById(objId)
  obj:setName(name)
      if internalName ~= item.internalName then
        local obj = scenetree.findObjectById(item.id)
        if obj then
local function forestItemDataTreeNode(item)
  local obj = scenetree.findObjectById(item.id)
  if not obj then return end
  for i, item in ipairs(copyItemsArray) do
    newItems[i] = var.forestData:createNewItem(scenetree.findObjectById(item.itemDataId), editor.tableToMatrix(item.transform), item.scale)
  end
  for _, item in ipairs(var.forestItemData) do
    local obj = scenetree.findObjectById(item.id)
    if obj and editor.isDataBlockDirty(obj) then
  if tableSize(selectedIds) == 1 then
    local object = scenetree.findObjectById(selectedIds[1])
    if object and object:getClassName() == "ForestBrushElement" or object:getClassName() == "ForestBrush" then
@/lua/ge/extensions/gameplay/sites/parkingSpot.lua
function C:setToVehicle(vehId)
  local veh = scenetree.findObjectById(vehId)
  if not veh then return end
@/lua/ge/extensions/flowgraph/nodes/vehicle/bus/registerBusData.lua
  local fun = function()
    local veh = scenetree.findObjectById(self.pinIn.vehId.value)
    self.mgr.modules.vehicle:registerBusChangeNotification(self.pinIn.vehId.value)
@/lua/ge/extensions/editor/vehicleBridgeTest.lua
    if im.Button("Get Value!") then
      core_vehicleBridge.requestValue(scenetree.findObjectById(vehId),function(...) editor_vehicleBridgeTest.callback(...) end, key)
      result = "Waiting for Reply..."
@/lua/ge/extensions/editor/api/core.lua
local function deleteObject(objectId)
  local obj = Sim.findObjectById(objectId)
  if obj and not obj:isLocked() then
@/lua/ge/extensions/core/recoveryPrompt.lua
  vehicleSlow = function(type, vehId)
    local veh = scenetree.findObjectById(vehId)
    if veh then
  vehicleStopped = function(type, vehId)
    local veh = scenetree.findObjectById(vehId)
    if veh then
    atFadeFunction = function(target)
      local veh = scenetree.findObjectById(target.vehId)
      if veh then
    atFadeFunction = function(target)
      local veh = scenetree.findObjectById(target.vehId)
      if veh then
        atFadeFunction = function(target)
          career_modules_playerDriving.teleportToGarage(garage.id, scenetree.findObjectById(target.vehId), false)
@/lua/ge/extensions/editor/roadArchitect.lua
  if node then
    local object = scenetree.findObjectById(node.id)
    if object then
@/lua/ge/extensions/gameplay/drift/stuntZones/hitPole.lua
  if self.activeData.veh then
    local veh = scenetree.findObjectById(self.activeData.veh:getId())
    local vehPos = veh:getPosition()
@/lua/ge/extensions/editor/sidewalkSpline.lua
              if spline.sceneTreeFolderId then
                local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
                if folder then
@/lua/ge/extensions/ui/credits.lua
  creditsSoundId = Engine.Audio.createSource('AudioGui', 'event:>Music>credits')
  local snd = scenetree.findObjectById(creditsSoundId)
  if snd then
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/vehicleAction.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  end
@/lua/ge/extensions/flowgraph/nodes/vehicle/moveTo.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/career/modules/delivery/generator.lua
  elseif loc.type == "vehicle" then
    local veh = scenetree.findObjectById(loc.vehId)
    if veh then return veh:getPosition() end
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/rallySuperCountdown.lua

  veh = scenetree.findObjectById(self.pinIn.vehId.value)
  if not veh then
@/lua/ge/extensions/editor/assemblySpline/populate.lua
  local splineId = spline.id
  local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
  for i = 1, #meshesBySpline do
    local obj = scenetree.findObjectById(meshesBySpline[i])
    if obj then
local function ensureFolderExists(spline, splineIdx)
  local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
  if not folder then
    for i = 1, #meshesBySpline do
      local obj = scenetree.findObjectById(meshesBySpline[i])
      if obj then
@/lua/ge/extensions/editor/assemblySpline/import.lua
    end
    local parent = entry.groupId and scenetree.findObjectById(entry.groupId)
    if parent then
  for i = 1, #collection do
    local obj = scenetree.findObjectById(collection[i])
    if validateToolCompatibleTSStatic(obj) then
@/lua/ge/extensions/flowgraph/nodes/gameplay/toggleWalking.lua
            if id then
                self.mgr.modules.vehicle:addVehicle(scenetree.findObjectById(id), { ignoreReadyUp = true })
            end
@/lua/ge/extensions/gameplay/crashTest/crashTestBoundaries.lua

  veh = scenetree.findObjectById(vehId)
@/gameplay/missions/gridmap_v2/aiRace/001-grindergrandprix/script.lua
      if math.random() < (timer-5)*0.25 then
        local veh = scenetree.findObjectById(id)
        if veh then
function C:onVehicleReset(id)
  local veh = scenetree.findObjectById(id)
  if not veh then return end
@/lua/ge/extensions/editor/meshSpline/populate.lua
    mesh.scale = scaleVec
    local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
    folder:addObject(mesh.obj)
  -- [If it doesn't exist (maybe user deleted it), then create a new one.]
  local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
  if not folder then
@/gameplay/missionTypes/targetjump/customNodes/CalculateZonePointRewardNode.lua

  local veh = scenetree.findObjectById(self.pinIn.vehId.value)
  local testPositions = {}
@/lua/ge/extensions/flowgraph/nodes/vehicle/playerUsable.lua
  if self.pinIn.vehId.value and self.pinIn.vehId.value ~= 0 then
    source = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/gameplay/missionTypes/hypermiling/customNodes/getFuelLevelNode.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/gameplay/rally/tools/loopToolbox.lua
      -- Verify object still exists
      local obj = scenetree.findObjectById(signboard.id)
      if obj then
@/lua/ge/extensions/scenario/raceMarkers/overhead.lua
  for _, id in ipairs(self._ids or {}) do
    local obj = scenetree.findObjectById(id)
    if obj then
@/lua/ge/extensions/core/dynamicProps.lua
  getObjectByID(propId):setActive(1)
  --spawn.safeTeleport(scenetree.findObjectById(propId), (locationInfo.originPos + self.spawnOffset), quat(0, 0, 0, 0))
  local spawnPos = locationInfo.originPos + self.spawnOffset
  local forestItem = locationInfo.forestItem
  local veh = scenetree.findObjectById(locationInfo.linkedPropId)
  veh:resetBrokenFlexMesh()
  for id, _ in pairs(self.props) do
    source = scenetree.findObjectById(id)
    if editor and editor.onRemoveSceneTreeObjects then
@/lua/ge/extensions/editor/api/roadRiver.lua
local function addRoadNode(roadObjectId, nodeInfo)
  local decalRoad = scenetree.findObjectById(roadObjectId)
  local res = decalRoad:insertNode(nodeInfo.pos, nodeInfo.width, nodeInfo.index)
local function deleteRoad(roadObjectId)
  local road = scenetree.findObjectById(roadObjectId)
      for decoID in string.gmatch(decorationIDs, "%d+") do
        scenetree.findObjectById(tonumber(decoID)):deleteObject()
      end
local function deleteRoadNode(roadObjectId, nodeID)
  local road = scenetree.findObjectById(roadObjectId)
  road:deleteNode(nodeID)
local function addMeshNode(meshObjectId, nodeInfo)
  local mesh = scenetree.findObjectById(meshObjectId)
  local res = mesh:insertNode(nodeInfo.pos, nodeInfo.width, nodeInfo.depth, nodeInfo.normal, nodeInfo.index)
  for id, _ in pairs(allRoads) do
    local road = scenetree.findObjectById(id)
    if road then
@/gameplay/missionTypes/cannon/customNodes/cannonBallInfoNode.lua
    if not self.mgr.modules.vehicle:getVehicle(id).dead then
      local pos = scenetree.findObjectById(id):getPosition()
      local dist = (pos - vec3(self.pinIn.ballPos.value)):length()
@/lua/ge/extensions/scenario/raceMarkers/singleHologramMarker.lua

  centerColumn = scenetree.findObjectById(self.columnId)
  if centerColumn then

  centerColumn = scenetree.findObjectById(self.columnId)
  if centerColumn then
  self.visible = v
  centerColumn = scenetree.findObjectById(self.columnId)
  if centerColumn then
  if id then
    local obj = scenetree.findObjectById(id)
    if obj then obj:delete() end
@/lua/ge/extensions/flowgraph/nodes/vehicle/getElectricsValue.lua
  if self._setupData then
    local veh = scenetree.findObjectById(self._setupData.vehId)
    if veh then
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/editor/roadEditor.lua
    for _, roadID in ipairs(selectedRoadsIds) do
      local road = scenetree.findObjectById(roadID)
      if road then
  for roadID, nodeWidthsTbl in pairs(actionData.oldWidths) do
    local road = scenetree.findObjectById(roadID)
    if road then
  for roadID, nodeWidthsTbl in pairs(actionData.newWidths) do
    local road = scenetree.findObjectById(roadID)
    if road then
  for roadID, nodes in pairs(actionData.roadAndNodeIDs) do
    local road = scenetree.findObjectById(roadID)
    if not road then goto continue end
  for roadID, nodes in pairs(actionData.roadAndNodeIDs) do
    local road = scenetree.findObjectById(roadID)
    if not road then goto continue end
  for roadID, nodeInfo in pairs(actionData.roadInfos) do
    local road = scenetree.findObjectById(roadID)
    deleteNode(road, nodeInfo.index)
    for _, nodeInfo in ipairs(nodeInfos) do
      local road = scenetree.findObjectById(roadID)
      deleteNode(road, nodeInfo.index)
  for originalRoadID, nodeID in pairs(actionData.originalRoadAndNodeIDs) do
    local originalRoad = scenetree.findObjectById(originalRoadID)
    deleteNode(originalRoad, originalRoad:getNodeCount() - 1)
    deleteNode(originalRoad, originalRoad:getNodeCount() - 1)
    local newRoad = scenetree.findObjectById(actionData.newRoadIDs[roadIndex])
    -- Loop through all the nodes
  for originalRoadID, nodeID in pairs(actionData.originalRoadAndNodeIDs) do
    local originalRoad = scenetree.findObjectById(originalRoadID)
    if originalRoad then
  for roadID, nodeID in pairs(roadAndNodeIDs) do
    local road = scenetree.findObjectById(roadID)
    if nodeID == 0 or nodeID == road:getNodeCount() - 1 then

  local road1 = scenetree.findObjectById(road1Data.roadID)
  local road2 = scenetree.findObjectById(road2Data.roadID)
  local road1 = scenetree.findObjectById(road1Data.roadID)
  local road2 = scenetree.findObjectById(road2Data.roadID)
  if tableSize(selectedRoadsIds) ~= 2 then return end
  local selectedRoad1 = scenetree.findObjectById(selectedRoadsIds[1])
  local selectedRoad2 = scenetree.findObjectById(selectedRoadsIds[2])
  local selectedRoad1 = scenetree.findObjectById(selectedRoadsIds[1])
  local selectedRoad2 = scenetree.findObjectById(selectedRoadsIds[2])
  if not selectedRoad1 or not selectedRoad2 then return end

    local roadObj = scenetree.findObjectById(r.id)
    if roadObj then
      if r.groupId then
        local grp = scenetree.findObjectById(r.groupId)
        if grp and grp.addObject then

    local roadObj = scenetree.findObjectById(r.id)
    if roadObj then
      if r.groupId then
        local grp = scenetree.findObjectById(r.groupId)
        if grp and grp.addObject then
  for _, id in ipairs(selectedRoadsIds) do
    local road = scenetree.findObjectById(id)
    if road and not Prefab.getPrefabByChild(road) then
  for roadID, nodesTbl in pairs(selectedNodes) do
    local selectedRoad = scenetree.findObjectById(roadID)
    if selectedRoad then

  local selectedRoad = scenetree.findObjectById(selectedRoadsIds[1])
  if selectedRoad and #selectedRoadsIds == 1 then
        local oldPosTbl = oldPositionsTbl[roadID]
        local road = scenetree.findObjectById(roadID)
        for _, nodeID in ipairs(nodes) do
        local oldWidthsTbl = oldWidths[roadID]
        local road = scenetree.findObjectById(roadID)
        for _, nodeID in ipairs(nodes) do
  if isRoadSelected(roadID) then
    local selectedRoad = scenetree.findObjectById(roadID)
    if selectedRoad then
  for _, roadID in ipairs(selectedRoadsIds) do
    local selectedRoad = scenetree.findObjectById(roadID)
    local roadTempNodeIndex = getRoadTempNodeIndex(roadID)
      for _, roadID in ipairs(selectedRoadsIds) do
        local road = scenetree.findObjectById(roadID)
        if not road then goto continue end
        for _, roadId in ipairs(selectedRoadsIds) do
          local selRoad = scenetree.findObjectById(roadId)
          local selectedNode = getSelectedSingleNodeInRoad(roadId)
        for _, roadId in ipairs(selectedRoadsIds) do
          local selRoad = scenetree.findObjectById(roadId)
          local selectedNode = getSelectedSingleNodeInRoad(roadId)
      for _, roadID in ipairs(selectedRoadsIds) do
        local road = scenetree.findObjectById(roadID)
        if road and road:containsPoint(focusPointP3F) ~= -1 or hoveredNodeInfo[roadID] then
          if scenetree.decalRoadContainsPoint(roadID, focusPointP3F) then
            local road = scenetree.findObjectById(roadID)
            local drivability = road.drivability
        elseif roadID == hoveredRoadID then
          local road = scenetree.findObjectById(roadID)
          if road then
        else
          local road = scenetree.findObjectById(roadID)
          if road then
      for _, roadID in ipairs(selectedRoadsIds) do
        local selectedRoad = scenetree.findObjectById(roadID)
        local roadTempNodeIndex = getRoadTempNodeIndex(roadID)
          local tempNodeIndex = getRoadTempNodeIndex(activeRoadID)
          local activeRoad = scenetree.findObjectById(activeRoadID)
          if tempNodeIndex == -1 or not activeRoad then goto continue end
              local posTbl = newPositionsTbl[roadID]
              local selectedRoad = scenetree.findObjectById(roadID)
              for _, nodeID in ipairs(nodes) do
          for _, roadID in pairs(selectedRoadsIds) do
            local selectedRoad = scenetree.findObjectById(roadID)
            if selectedRoad then
          for _, roadID in ipairs(selectedRoadsIds) do
            local selectedRoad = scenetree.findObjectById(roadID)
            local roadTempNodeIndex = getRoadTempNodeIndex(roadID)
            if nodePosTbl[nodeID] then
              local selectedRoad = scenetree.findObjectById(roadID)
              setNodePosition(selectedRoad, nodeID,  nodePosTbl[nodeID] + vec3(diff.x, diff.y, 0))
      for _, roadID in ipairs(selectedRoadsIds) do
        local selectedRoad = scenetree.findObjectById(roadID)
        local roadTempNodeIndex = getRoadTempNodeIndex(roadID)
        for _, roadID in ipairs(selectedRoadsIds) do
          selectedRoad = scenetree.findObjectById(roadID)
          if selectedRoad then
          editor.selectObjectById(newRoadID)
          selectedRoad = scenetree.findObjectById(newRoadID)
          -- If the mouse button is held down, change the width of the created node
      if hoveredRoadID and roadTempNodeIndex == -1 then
        local roadObj = scenetree.findObjectById(hoveredRoadID)
        if tableIsEmpty(hoveredNodeInfo) then
    for roadID, nodes in pairs(selectedNodes) do
      local selectedRoad = scenetree.findObjectById(roadID)
      if not dragNodesStartPositions[roadID] then
  for _, roadID in ipairs(selectedRoadsIds) do
    local selectedRoad = scenetree.findObjectById(roadID)
    if selectedRoad then
    for i = 1, numSelectedRoads do
      local selectedRoad = scenetree.findObjectById(selectedRoadsIds[i])
      if not selectedRoad then goto continue end
  if #selectedRoadsIds == 1 then
    selectedRoad = scenetree.findObjectById(selectedRoadsIds[1])
  end
  for _, roadID in ipairs(selectedRoadsIds) do
    local selectedRoad = scenetree.findObjectById(roadID)
    if selectedRoad and not isAnyNodeSelected(roadID) then
  for roadID, nodeIDs in pairs(selectedNodes) do
    local selectedRoad = scenetree.findObjectById(roadID)
    if selectedRoad and selectedNodes[roadID] then
  for _, roadID in ipairs(selectedRoadsIds) do
    local selectedRoad = scenetree.findObjectById(roadID)
    if selectedRoad then
  for _, roadID in ipairs(duplicatedRoadIds) do
    local selectedRoad = scenetree.findObjectById(roadID)
    if selectedRoad then
  for i = 1, tableSize(editor.selection.object) do
    local selectedObject = scenetree.findObjectById(editor.selection.object[i])
    if selectedObject and selectedObject:getClassName() == "DecalRoad" then
@/lua/ge/extensions/gameplay/drag/utils.lua
local function stopAiVehicle(racer)
  local veh = scenetree.findObjectById(racer.vehId)
  if veh then
  local stageWaypoint = laneData.waypoints.stage.waypoint
  local vehObj = scenetree.findObjectById(racer.vehId)
  if not vehObj then return end
  local endLineName = laneData.waypoints.endLine.name
  local vehObj = scenetree.findObjectById(racer.vehId)
  if not vehObj then return end
  local endLine = laneData.waypoints.endLine
  local vehObj = scenetree.findObjectById(racer.vehId)
  if not vehObj then return end
  local spawnWaypoint = laneData.waypoints.spawn.waypoint
  local vehObj = scenetree.findObjectById(racer.vehId)
  if not vehObj then return end
  local spawnWaypoint = laneData.waypoints.spawn.waypoint
  local vehObj = scenetree.findObjectById(racer.vehId)
  if not vehObj then return end

  local vehObj = scenetree.findObjectById(racer.vehId)
  if not vehObj then
@/lua/ge/extensions/career/modules/delivery/precisionParking.lua
local function calculateVehiclePrecisionScore(vehId, targetParkingSpot)
  local vehicle = scenetree.findObjectById(vehId)
  if not vehicle then return nil end

  local vehicle = scenetree.findObjectById(playerVehId)
  if not vehicle then return nil end
@/lua/ge/extensions/tech/techCore.lua
    local name = ''
    local veh = scenetree.findObjectById(vehicleID)
    if veh ~= nil then
      if playerVeh then
        be:enterVehicle(0, scenetree.findObjectById(currentId))
      else
  local id = request['id']
  local obj = Sim.findObjectById(id)
  if obj ~= nil then
  if cur ~= nil then
    veh = scenetree.findObjectById(cur)
    be:enterVehicle(0, veh)
  local resp = {type = 'PartOptions', options = slotMap}
  veh = scenetree.findObjectById(cur)
  be:enterVehicle(0, veh)
  if cur ~= nil then
    veh = scenetree.findObjectById(cur)
    be:enterVehicle(0, veh)
@/lua/ge/extensions/gameplay/delivery/delivery.lua
function C:checkFail(dt)
  local veh = scenetree.findObjectById(self.vehId)
  local vData = map.objects[self.vehId]
@/lua/ge/extensions/flowgraph/nodes/activity/attemptVehicle.lua
    if self.pinIn.vehId.value then
      veh = scenetree.findObjectById(self.pinIn.vehId.value)
    else
@/lua/ge/extensions/editor/levelValidator.lua
      if logItem.objectId then
        local object = scenetree.findObjectById(logItem.objectId)
        if object then
      if logItem.objectId then
        local object = scenetree.findObjectById(logItem.objectId)
        if object then
local function deleteObjectRedo(actionData)
  local obj = Sim.findObjectById(actionData.objectId)
  if obj then
    if not node.planted then
      local object = scenetree.findObjectById(id)
      local prefab = Prefab.getPrefabByChild(object)
              elseif logItem.objectId then
                local obj = Sim.findObjectById(logItem.objectId)
                if obj then
          local object
          if logItem.objectId then object = scenetree.findObjectById(logItem.objectId) end
          local isIgnored = logItem._originalLogLevel ~= nil
    if log.objectId or log.prefabChildId then
      local object = scenetree.findObjectById(l.objectId)
      if log.prefabChildId then
      if log.prefabChildId then
        object = scenetree.findObjectById(log.prefabChildId)
      end
@/lua/ge/extensions/gameplay/taxi.lua
local function isTaxi(vehId)
  local obj = scenetree.findObjectById(vehId)
  if not obj then return false end
@/lua/ge/extensions/editor/buildingEditor.lua
U.hightOnCurve = function(p, rdinfo, start, dbg) --, av, step, dbg)
	local decal = scenetree.findObjectById(rdinfo.id)
	local av, step = rdinfo.av, rdinfo.avstep
	--    {{pos = apos[1], width = w, drivability = 1}},
	local road = scenetree.findObjectById(id)
	if m == nil then
	rd.w = w
	local road = scenetree.findObjectById(newRoadID)
	road:setField("material", 0, mat)
		else
--            local branch = scenetree.findObjectById(rdinfo.id)
				if dbg then
	end
	local droot = scenetree.findObjectById(rdinfo.id)
	local dp
		lo('?? for_s:'..s[1]..':'..s[2])
		local decal = scenetree.findObjectById(roads[s[1]].id)
		for _,dir in pairs {1, -1} do
		end
		local decal = scenetree.findObjectById(r.id)
				U.dump(inedge[i], '?? junctionUp_inedge:'..i)
		---- in/out decals
		local deco, deci = scenetree.findObjectById(ro.id), scenetree.findObjectById(ri.id)
				lo('?? d_io:'..tostring(deco)..':'..tostring(deci))
		---- in/out decals
		local deco, deci = scenetree.findObjectById(ro.id), scenetree.findObjectById(ri.id)
				lo('?? d_io:'..tostring(deco)..':'..tostring(deci))
	end
	local deco, deci = scenetree.findObjectById(inforo.id), scenetree.findObjectById(infori.id)
	pout = fedge(inforo, -1)(eo)
	end
	local deco, deci = scenetree.findObjectById(inforo.id), scenetree.findObjectById(infori.id)
	pout = fedge(inforo, -1)(eo)
local function forLimits(ro, ri, dec, eo, ei, cho, chi)
	local deco, deci = scenetree.findObjectById(ro.id), scenetree.findObjectById(ri.id)
	local jb, je
local function forLimits(ro, ri, dec, eo, ei, cho, chi)
	local deco, deci = scenetree.findObjectById(ro.id), scenetree.findObjectById(ri.id)
	local jb, je
	end
	local deco, deci = scenetree.findObjectById(ro.id), scenetree.findObjectById(ri.id)
	-- set edges indices
	end
	local deco, deci = scenetree.findObjectById(ro.id), scenetree.findObjectById(ri.id)
	-- set edges indices
	local hmap = road.hmap
	local rd = scenetree.findObjectById(road.id)
	local adec = editor.getNodes(rd)
	be:reloadCollision()
--    local dec = scenetree.findObjectById(id)
	local adec = editor.getNodes(dec)
--    rdmesh.decal = id
	local road = scenetree.findObjectById(idnew)
	road:setField("material", 0, mat)
			--TODO: this print was in production, please comment when releasing
			--lo('>> onEditorObjectSelectionChanged:'..tostring(editor.selection.object[1])) --..tostring(scenetree.findObjectById(editor.selection.object[1]).name))
--        D.ter2road()
@/lua/ge/extensions/editor/terraform/fetchSources.lua
  for _, v in pairs(editor.selection.object) do
    local sel = scenetree.findObjectById(v)
    if sel and sel:getClassName() == "MeshRoad" then
@/lua/ge/extensions/campaign/photoSafari.lua
local function on_siteLocation(campos,sceneObject)
  local vehicle = scenetree.findObjectById(be:getPlayerVehicleID(0))
  local camTriggerObj = scenetree.findObject('camtrig')
  end
  local vehicle = scenetree.findObjectById(be:getPlayerVehicleID(0))
  local photoTrigger = scenetree.findObject(M.location)
@/lua/ge/extensions/editor/decalSpline/populate.lua
    if numInstances < 1 then
      local template = scenetree.findObjectById(templateIds[material])
      if template then
  if templateFolderId then
    local folder = scenetree.findObjectById(templateFolderId)
    if folder then
  -- Ensure we have a folder for the shared templates.
  if not templateFolderId or not scenetree.findObjectById(templateFolderId) then
    local uniqueName = util.generateUniqueName("DecalSpline - Templates", toolPrefixStr)
      if templateFolderId then
        local folder = scenetree.findObjectById(templateFolderId)
        if folder then
    -- Create the decal instance and store it in the decal instances table.
    local template = scenetree.findObjectById(templateIds[componentPath])
    if template then
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceHighscoresLap.lua
      if self.pinIn.vehId.value then
        veh = scenetree.findObjectById(self.pinIn.vehId.value)
      else
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehiclePing.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/vehicle/setLightbar.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/editor/meshSpline/import.lua
      end
      local parent = entry.groupId and scenetree.findObjectById(entry.groupId)
      if parent then
  for i = 1, #collection do
    local obj = scenetree.findObjectById(collection[i])
    if obj and obj:getClassName() == "TSStatic" then -- Check if the object is a TSStatic.
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleOOBB.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/scenario/nomoveGoal.lua
    if state == 'onCountdownEnded' then
      local vehicle = instance.vId and scenetree.findObjectById(instance.vId) or nil
      if vehicle then
    if state == 'onRaceResult' or state=='onRaceTick' then
      local vehicle = scenetree.findObjectById(instance.vId)
      if vehicle and (instance.startPos - vehicle:getPosition()):len() > 0.1 then
    if instance.id == 'nomove' then
      local vehicle = instance.vId and scenetree.findObjectById(instance.vId) or nil
      if not vehicle then
@/lua/ge/extensions/gameplay/drag/display.lua
  if prefabId then
    local prefabInstance = scenetree.findObjectById(prefabId)
    if prefabInstance then
@/lua/ge/extensions/career/modules/insurance/insurance.lua
        if activeInsuranceId > 0 then -- if the vehicle is insured ...
          local newVeh = scenetree.findObjectById(newVehId)
          if newVeh then
@/lua/ge/extensions/flowgraph/nodes/vehicle/spawnVehicle.lua
    if self.spawnedObjectId and not self.pinIn.replacePlayer.value then -- if replacing the player vehicle, we don't need to delete the current vehicle
      local obj = scenetree.findObjectById(self.spawnedObjectId)
      if obj and not self.pinIn.keepOnReset.value then
@/lua/ge/extensions/editor/roadSpline/import.lua
      -- Add to parent group.
      local parent = entry.groupId and scenetree.findObjectById(entry.groupId)
      if parent then
@/lua/ge/extensions/editor/audioEventsList.lua
  if sfxIDPlaying then
    local oldSFX = scenetree.findObjectById(sfxIDPlaying)
    if oldSFX then
@/lua/ge/extensions/editor/textEditor.lua
  guiInstancer.instances[index].fieldName = fieldName
  local obj = scenetree.findObjectById(objIds[1])
  guiInstancer.instances[index].textInput = imgui.ArrayChar(textInputSize, tableSize(objIds) == 1 and obj:getField(fieldName, "") or "")
@/lua/ge/extensions/scenario/raceMarkers/sideColumnMarker.lua
  local baseHeight = clamp(inverseLerp(10,40,distanceFromMarker),self.radius,self.radius*3)
  base = scenetree.findObjectById(self.baseId)
  if base then
  --debugDrawer:drawTextAdvanced(self.pos, String(string.format("%0.2f -> %0.2f / %0.2f / %0.2f", distanceFromMarker, sideRadius, sideHeight, baseHeight)), ColorF(1,1,1,1), true, false, ColorI(0,0,0,192))
  left = scenetree.findObjectById(self.leftId)
  if left then
  end
  right = scenetree.findObjectById(self.rightId)
  if right then
  self.minAlpha = wp.minAlpha or self.minAlpha
  base = scenetree.findObjectById(self.baseId)
  if base then
  end
  left = scenetree.findObjectById(self.leftId)
  if left then
  end
  right = scenetree.findObjectById(self.rightId)
  if right then
  self.visible = v
  base = scenetree.findObjectById(self.baseId)
  if base then
  end
  left = scenetree.findObjectById(self.leftId)
  if left then
  end
  right = scenetree.findObjectById(self.rightId)
  if right then
  if id then
    local obj = scenetree.findObjectById(id)
    if obj then obj:delete() end
@/lua/ge/extensions/flowgraph/nodes/mission/knockAwayCheck.lua
  for _, id in ipairs(data.allChildrenIds['BeamNGVehicle'] or {}) do
    local veh = scenetree.findObjectById(id)
    if veh then
          self.vehicleHit[id] = false
          local veh = scenetree.findObjectById(id)
          local pts = tonumber(veh:getDynDataFieldbyName("knockAwayPoints", 0)) or self.pinIn.defaultPoints.value or 1
@/lua/ge/extensions/gameplay/crawl/boundary.lua
    for objectId, objectInfo in pairs(boundaryObjects) do
      local obj = scenetree.findObjectById(objectId)
      if obj then
  for objectId, objectInfo in pairs(boundaryObjects) do
    local obj = scenetree.findObjectById(objectId)
    if obj then
  if spawnedBoundaryMarkersId then
    local group = scenetree.findObjectById(spawnedBoundaryMarkersId)
    if group then
  if spawnedBoundaryMarkersId then
    local group = scenetree.findObjectById(spawnedBoundaryMarkersId)
    if group then
  for objectId, objectInfo in pairs(boundaryObjects) do
    local obj = scenetree.findObjectById(objectId)
    if obj and not obj.hidden then
@/lua/ge/extensions/editor/prefabInstanceEditor.lua
local function prefabInstanceMatchesParent(prefabInstanceId)
  local object = scenetree.findObjectById(prefabInstanceId)
  for i, id in ipairs(inspectorInfo.previousSelectedIds) do
    local object = scenetree.findObjectById(id)
    if not object or (object and object:getClassName() ~= "PrefabInstance") then
@/lua/ge/extensions/gameplay/rally/audioManager.lua
-- function C:stopSfxSource(sourceId)
--   local sfxSource = scenetree.findObjectById(sourceId)
--   if sfxSource then
@/lua/ge/extensions/flowgraph/nodes/vehicle/beamstate/beamstate.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  end
@/lua/ge/extensions/flowgraph/nodes/vehicle/getPowertrainData.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/vehicle/enterVehicle.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/mission/postClean.lua
    if self.pinIn.vehId.value then
      veh = scenetree.findObjectById(self.pinIn.vehId.value)
    else
@/lua/ge/extensions/flowgraph/nodes/vehicle/removeVehicle.lua
  if self.pinIn.vehId.value and self.pinIn.vehId.value ~= 0 then
    source = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/editor/forestView.lua
  if not item then return end
  local obj = scenetree.findObjectById(item.id)
  if not obj then return end
local forestItemSortByNameFunc = function(a, b)
  local aObj = scenetree.findObjectById(a.id)
  local bObj = scenetree.findObjectById(b.id)
  local aObj = scenetree.findObjectById(a.id)
  local bObj = scenetree.findObjectById(b.id)
  return string.lower(aObj.internalName or "unnamed_"..a.id) < string.lower(bObj.internalName or "unnamed_"..b.id)
@/lua/ge/extensions/editor/gen/region.lua
		U.dump(side, '>> dist2base:'..d)
	local n2d = D.node2edge(scenetree.findObjectById(adec[side.rd].id))
	local anode = adec[side.rd].list
			local vt = (anode[ni] - anode[ni-side.dir]):normalized()
			local wd = editor.getNodes(scenetree.findObjectById(adec[side.rd].id))[ni].width
			return p + vec3(-vt.y,vt.x)*(mrg + wd/2)
	local vt = (anode[side.to] - anode[side.to-side.dir]):normalized()
	local wd = editor.getNodes(scenetree.findObjectById(adec[side.rd].id))[side.to].width
	-- distance to match prev side
--    local anobj = editor.getNodes(scenetree.findObjectById(adec[sto.rd].id))
	local wd = anobj[sto.fr].width
			dstart = (pc - anode[sto.fr]):dot(forStem(sto,0))
			local wfr = editor.getNodes(scenetree.findObjectById(adec[sfr.rd].id))[sfr.to].width
			dstart = dstart + (margin+wfr/2)/math.cos(ang - math.pi/2)
	if not anobj and side then
		ano = editor.getNodes(scenetree.findObjectById(adec[side.rd].id))
--        lo('?? for_ano:'..tostring(ano))

--    local rd = scenetree.findObjectById(adec[side.rd].id)
	local anode = adec[side.rd].list
	local anode = adec[side.rd].list
	local n2d = D.node2edge(scenetree.findObjectById(adec[side.rd].id))
	local L = U.rand(mm_len[1], mm_len[2])
--            out.awhite = {}
--    local anobjthem = editor.getNodes(scenetree.findObjectById(adec[sfr.rd].id))
	-- go along buildings
	if not anobjthem then
		anobjthem = editor.getNodes(scenetree.findObjectById(adec[sfr.rd].id))
	end
	-- in-area point
	local anobjus = editor.getNodes(scenetree.findObjectById(adec[side.rd].id))
	local anobjthem = editor.getNodes(scenetree.findObjectById(adec[sthem.rd].id))
	local anobjus = editor.getNodes(scenetree.findObjectById(adec[side.rd].id))
	local anobjthem = editor.getNodes(scenetree.findObjectById(adec[sthem.rd].id))
	local p,igreen,ired = branchPush(sthem, side,
		if not node_dist then
			node_dist = D.node2edge(scenetree.findObjectById(adec[side.rd].id))
		end
						U.dump(sideprev, '?? IF_CORNER:')
					local anobjprev = editor.getNodes(scenetree.findObjectById(adec[sideprev.rd].id))
	--                    lo('?? for_PREV:'..tostring(anobjprev[side.fr]))
--                U.dump(sideprev, '?? sprev:')
			local anthem = editor.getNodes(scenetree.findObjectById(adec[sideprev.rd].id))
			local ppushed = branchPush(sideprev, side,
		aswitch[#aswitch + 1] = #abase
		anobj = editor.getNodes(scenetree.findObjectById(adec[aside[i].rd].id))
		local sidenxt = aside[i % #aside + 1]
		local sidenxt = aside[i % #aside + 1]
		local anobjnxt = editor.getNodes(scenetree.findObjectById(adec[sidenxt.rd].id))
		local side = aside[i]
			U.dump(adec[aside[i].rd])
		n2d = D.node2edge(scenetree.findObjectById(adec[side.rd].id), true)
		local anode = adec[side.rd].list
						sideprev = {rd = stem.rdi, fr = fr, to = stem.fr, dir = stem.fr>fr and 1 or -1}
						local anthem = editor.getNodes(scenetree.findObjectById(adec[sideprev.rd].id))
						local ppushed = branchPush(sideprev, side,
			for _,sadj in pairs(asadj) do
				local anobjthem = editor.getNodes(scenetree.findObjectById(adec[sadj.rd].id))
				local n2dthem = D.node2edge(scenetree.findObjectById(adec[sadj.rd].id))
				local anobjthem = editor.getNodes(scenetree.findObjectById(adec[sadj.rd].id))
				local n2dthem = D.node2edge(scenetree.findObjectById(adec[sadj.rd].id))
				igreen = sadj.fr
			end
			local anobjthem = editor.getNodes(scenetree.findObjectById(adec[sideprev.rd].id))
			local p = branchPush(sideprev, side,
			acorner = {{rd = rmi, to = ie, fr = ib, dir = (ie > ib and 1 or -1)}}
			dn2d[rmi] = D.node2edge(scenetree.findObjectById(adec[rmi].id))
--                U.dump(acorner, '?? first_side:'..rmi)
						acorner[#acorner+1] = {rd = stem.rdi, to = k, fr = fr, dir = (k > fr and 1 or -1)}
						dn2d[stem.rdi] = D.node2edge(scenetree.findObjectById(adec[stem.rdi].id))
						hasnext = true
--!!
			D.matApply('road_asphalt_unmarked', scenetree.findObjectById(adec[p.rd].id))
		end
		local acorner = {{rd = rmi, to = ie, fr = ib, dir = (ie > ib and 1 or -1)}}
		dn2d[rmi] = D.node2edge(scenetree.findObjectById(adec[rmi].id))
			U.dump(acorner, '?? first_side:'..rmi)
					acorner[#acorner+1] = {rd = stem.rdi, to = k, fr = fr, dir = (k > fr and 1 or -1)}
					dn2d[stem.rdi] = D.node2edge(scenetree.findObjectById(adec[stem.rdi].id))
					hasnext = true
			out.avedit[#out.avedit + 1] = adec[p.rd].list[p.to]
--!!                D.matApply('road_asphalt_unmarked', scenetree.findObjectById(adec[p.rd].id))
		end
		desc.pos.z = hbase
			lo('?? obi:'..tostring(scenetree.findObjectById(desc.id)))
--        for _,s in pairs(dforest) do

	--    scenetree.findObjectById(desc.id).hidden = true --:setMeshAlpha(1, "", false)
	--!!
@/lua/ge/extensions/flowgraph/nodes/environment/simplePlanet.lua
  if self.pinIn.vehId.value then
    self.vehicle = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/scenario/distanceGoal.lua
    --distance instance: Distance between two vehicles must not be lower(minDistance) or higher(maxDistance) than X
    local vehicle = scenetree.findObjectById(instance.vId)
    if state == 'onRaceTick' and vehicle then
@/lua/ge/extensions/editor/gen/network.lua
U.hightOnCurve = function(p, rdinfo, start, dbg) --, av, step, dbg)
    local decal = scenetree.findObjectById(rdinfo.id)
    local av, step = rdinfo.av, rdinfo.avstep
    rd.w = w
    local road = scenetree.findObjectById(newRoadID)
    road:setField("material", 0, mat)
    local road
    local road = scenetree.findObjectById(newRoadID)
    groupEdit:add(road)
            )
            road = scenetree.findObjectById(newRoadID)
            road:setField("material", 0, mat)
]]
--        scenetree.findObjectById(newRoadID):delete()
    local hmap = road.hmap
    local rd = scenetree.findObjectById(road.id)
    local adec = editor.getNodes(rd)
        lo('>> decalUpdate:'..tostring(#hmap)..':'..tostring(#apin))
--    local dec = scenetree.findObjectById(id)
    local adec = editor.getNodes(dec)
--    rdmesh.decal = id
    local road = scenetree.findObjectById(idnew)
    road:setField("material", 0, mat)
        else
--            local branch = scenetree.findObjectById(rdinfo.id)
                if dbg then
    end
    local droot = scenetree.findObjectById(rdinfo.id)
    local dp
    --    {{pos = apos[1], width = w, drivability = 1}},
    local road = scenetree.findObjectById(id)
    if m == nil then
        print('?? for_s:'..s[1]..':'..s[2])
        local decal = scenetree.findObjectById(roads[s[1]].id)
        for _,dir in pairs {1, -1} do
@/lua/ge/extensions/flowgraph/nodes/career/setFuelLevel.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
    if self.pinIn.vehId.value then
      veh = scenetree.findObjectById(self.pinIn.vehId.value)
    else
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleData.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/gameplay/missions/missionScreen.lua
  setupSounds()
  local sound = scenetree.findObjectById(soundId)
  if sound then
  --[[
  local sound = scenetree.findObjectById(soundId)
  if sound then
  if active then
    local sound = scenetree.findObjectById(soundObjectIds[soundLabel])
    if sound then
    for label, _ in pairs(soundNames) do
      local sound = scenetree.findObjectById(soundObjectIds[label])
      if sound then
@/lua/ge/extensions/career/modules/delivery/cargoScreen.lua
      if not hasTooFastVehicle then
        local veh = scenetree.findObjectById(con.vehId)
        if veh then
            for vehId, data in pairs(data) do
              local veh = scenetree.findObjectById(vehId)
              core_vehicleBridge.executeAction(veh, 'setFreeze', false)
        for vehId, data in pairs(data) do
          local veh = scenetree.findObjectById(vehId)
          core_vehicleBridge.executeAction(veh, 'setFreeze', false)
@/lua/ge/extensions/flowgraph/modules/prefabModule.lua
        for _, id in ipairs(v) do
          local name = scenetree.findObjectById(id):getName() or ""
          if k == "BeamNGVehicle" then
    if not contains then
      local static = scenetree.findObjectById(id)
      if static then
  for _, id in ipairs(data.allChildrenIds['BeamNGVehicle'] or {}) do
    local veh = scenetree.findObjectById(id)
    if veh then
    if not requires then
      local wp = scenetree.findObjectById(id)
      if wp and not wp.excludeFromMap then
      if not requires then
        local dr = scenetree.findObjectById(id)
        if dr and dr.drivability > 0 then

  local obj = scenetree.findObjectById(id)
  if not obj then
    for vid, val in pairs(data.originalVehicleTransforms or {}) do
      local veh = scenetree.findObjectById(vid)
      if veh then
  for k, _ in pairs(self.prefabs[id].originalVehicleTransforms) do
    local veh = scenetree.findObjectById(k)
    if veh then
    --dump("Extracting object: " .. i)
    local veh = scenetree.findObjectById(k)
    if veh then
  if not data.dontDelete or force then
    local obj = scenetree.findObjectById(id)
    if obj then
    if not data.dontDelete then
      local obj = scenetree.findObjectById(id)
      --print("data.unpackVehiclesBeforeDeletion ->" .. dumps(data.unpackVehiclesBeforeDeletion))
@/lua/ge/extensions/editor/sceneView.lua
        if editor.selection.object and editor.selection.object[1] then
          local cam = scenetree.findObjectById(editor.selection.object[1])
          if cam and (cam:getClassName() == "Camera" or cam:getClassName() == "CameraBookmark") then
        if 0 ~= lastCameraSceneNodeId then
          local cam = scenetree.findObjectById(lastCameraSceneNodeId)
          if cam then
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficSpawnGroup.lua
  for _, id in ipairs(self.vehicleIds) do
    local obj = scenetree.findObjectById(id)
    if obj then
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/rallyDebugNode.lua

    local vehicle = scenetree.findObjectById(self.pinIn.vehId.value)
@/lua/ge/extensions/flowgraph/nodes/scene/rectMarker.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/vehicle/setLights.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/editor/shapeEditor.lua
local function showShapeEditorGui(objectId)
  local obj = scenetree.findObjectById(objectId)
  if obj and obj.getClassName and obj:getClassName() == "TSStatic" then
  if editor.getPreference("shapeEditor.general.autoOpenSelectedObject") and editor.selection.object and #editor.selection.object > 0 then
    local obj = scenetree.findObjectById(editor.selection.object[1])
    if obj and obj.getClassName and obj:getClassName() == "TSStatic" then
@/lua/ge/extensions/scenario/raceMarkers/sideMarker.lua
  for _, id in ipairs(self._ids or {}) do
    local obj = scenetree.findObjectById(id)
    if obj then
@/lua/ge/extensions/editor/sidewalkSpline/populate.lua
local function getOrCreateFolder(spline, splineIdx)
  local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
  if not folder then
@/gameplay/missionTypes/cannon/customNodes/cannonBallTouchdownNode.lua
function C:getBallPosition(id)
  local veh = scenetree.findObjectById(id)
  if not (veh and string.find(veh:getInternalName() or "cannon", "cannon")) then
@/lua/ge/extensions/gameplay/markers/inspectVehicleMarker.lua
function C:setup(cluster)
  iconRendererObj = scenetree.findObjectById(self.iconRendererId)
@/lua/ge/extensions/flowgraph/nodes/vehicle/recoverInPlace.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/mission/ARunForLife.lua
    id = props[i]
    veh = scenetree.findObjectById(id)
    local flag = false

    pl = scenetree.findObjectById(self.pinIn.plId.value)
  end
  for _, id in pairs(containers) do
    local veh = scenetree.findObjectById(id)
    if not veh then return end
  for i = 1, #props do
    local prop = scenetree.findObjectById(props[i])
    if prop and prop:getActive() and prop:getPosition().y - camPos.y > propDespawn then

      veh = scenetree.findObjectById(randomPropId)
      propPool:setVeh(randomPropId, true)
  for i = 1, #props do
    veh = scenetree.findObjectById(props[i])
    pos = veh:getPosition()
  for i = 1, #props do
    local pl = scenetree.findObjectById(props[i])
    if pl then
    if t.decal then
      local prop = scenetree.findObjectById(t.id)
@/lua/ge/extensions/editor/masterSpline/jumpTables.lua
      if fullSplines[idx].sceneTreeFolderId then -- Update scene tree folder name.
        local folder = scenetree.findObjectById(fullSplines[idx].sceneTreeFolderId)
        if folder then
      if fullSplines[idx].sceneTreeFolderId then -- Update scene tree folder name.
        local folder = scenetree.findObjectById(fullSplines[idx].sceneTreeFolderId)
        if folder then
      if fullSplines[idx].sceneTreeFolderId then -- Update scene tree folder name.
        local folder = scenetree.findObjectById(fullSplines[idx].sceneTreeFolderId)
        if folder then
@/lua/ge/extensions/editor/terrainEditor.lua
local function updatePaintMaterialProxies()
  local terrainBlock = terrainBlockId and scenetree.findObjectById(terrainBlockId)
  if not terrainBlock then return end
local function reorderMaterial(from, to)
  local terrainBlock = terrainBlockId and scenetree.findObjectById(terrainBlockId)
  if not terrainBlock then return end
  end
  local terrainBlock = terrainBlockId and scenetree.findObjectById(terrainBlockId)
  if not terrainBlock then return end
  saveMaterials()
  local terrainBlock = terrainBlockId and scenetree.findObjectById(terrainBlockId)
  if terrainBlock then
  for tbName, tbData in pairs(terrainBlockProxies) do
    local tb = scenetree.findObjectById(tbData.id)
    if tb then
      -- TODO: a TerrainBlock with the same name has been found: can we overwrite it?
      terrBlock = scenetree.findObjectById(tbData.id)
      createNewTerrainBlock = false
  for tbName, tbData in pairs(terrainBlockProxies) do
    local tb = scenetree.findObjectById(tbData.id)
    if tb and (tbData.selected == true) then
local function showAddLayerMaterialGui()
  local terrainBlock = terrainBlockId and scenetree.findObjectById(terrainBlockId)
  if not terrainBlock then return end

      local terrainBlock = terrainBlockId and scenetree.findObjectById(terrainBlockId)
      if terrainBlock and terrainBlock:getField('materialTextureSet', 0) == "" then
  editor.setPreference("terrainEditor.general.brushSize", value)
  local terrainBlock = terrainBlockId and scenetree.findObjectById(terrainBlockId)
  if terrainBlock then

  local terrainBlock = terrainBlockId and scenetree.findObjectById(terrainBlockId)
  if terrainBlock then
  for tbName, tbData in pairs(terrainBlockProxies) do
    local tb = scenetree.findObjectById(tbData.id)
    if not tb then updateEditorTerrainBlocks() break end
        if brushCenter and state ~= stateEnum.terraforming then
          local terrainBlock = terrainBlockId and scenetree.findObjectById(terrainBlockId)
          if terrainBlock then
          var.brushHeightPicking = false
          local terrainBlock = terrainBlockId and scenetree.findObjectById(terrainBlockId)
          if terrainBlock then
  if notifications["terrainDirty"] then
    local terrainBlock = terrainBlockId and scenetree.findObjectById(terrainBlockId)
    if terrainBlock then
local function onEditorObjectAdded(id)
  local obj = scenetree.findObjectById(id)
  if obj and obj:getClassName() == "TerrainBlock" then
M.getTerrainEditor = function() return terrainEditor end
M.getTerrainBlock = function() return terrainBlockId and scenetree.findObjectById(terrainBlockId) end
M.getMaterialsInJson = function() return materialsInJson end
@/lua/ge/extensions/editor/objectToSplineEditor.lua
local function getNewExtents(objId, useWorldBox) -- returns the scaled object extents
  local obj = scenetree.findObjectById(objId)
  local extents = useWorldBox and obj:getWorldBox():getExtents() or obj:getObjectBox():getExtents()
local function setObjectTransform(id, pos, rot) -- sets the object position and rotation
  local obj = scenetree.findObjectById(id)
  if not obj then return end
local function createObjects(objId, points, params, presetIds) -- actually creates objects with the given positions
  local obj = scenetree.findObjectById(objId)
  if not obj or not points then return end
  local newIds = {}
  local newGroup = scenetree.findObjectById(tonumber(obj:getField("parentGroup", 0)))
  local groupId
local function createSplineArray(guideId, gap, startOffset, endOffset, params) -- returns an array of positions and rotations along the decal road
  local guide = scenetree.findObjectById(guideId)
  if not guide then return end

  local obj = scenetree.findObjectById(objId or 0)
  if obj then
    local currId = editor.selection.object[1]
    if not classNames or arrayFindValueIndex(classNames, scenetree.findObjectById(currId).className) then
      id = currId
  if editor.beginWindow(toolWindowName, toolName) then
    if objId and not scenetree.findObjectById(objId) then
      objId = nil
    end
    if guideId and not scenetree.findObjectById(guideId) then
      guideId = nil
      im.SameLine()
      str = tostring(scenetree.findObjectById(objId):getName()).." ["..objId.."]"
    end
      im.SameLine()
      str = tostring(scenetree.findObjectById(guideId):getName()).." ["..guideId.."]"
    end
        guideErrorTxt = nil
        if scenetree.findObjectById(guideId).className == "MeshRoad" then
          be:reloadCollision() -- rebuild collision for mesh roads
    if objId then
      local obj = scenetree.findObjectById(objId)
      local offset = vec3(0, 0, 0)
    if guideId then
      local guide = scenetree.findObjectById(guideId)
      local up = vecUp * 0.01
@/lua/ge/extensions/flowgraph/nodes/vehicle/trackVehicle.lua
function C:work()
  local veh = scenetree.findObjectById(self.pinIn.vehId.value)
  if veh then
@/lua/ge/extensions/editor/meshEditor.lua
  if selectedMeshId then
    local selectedMesh = selectedMeshId and scenetree.findObjectById(selectedMeshId)
    if selectedMesh then
local function updateGizmoPos()
  local selectedMesh = selectedMeshId and scenetree.findObjectById(selectedMeshId)
  if selectedMesh and selectedMesh:getNodeCount() > 0 then
local function pasteFieldsAM()
  local selectedMesh = selectedMeshId and scenetree.findObjectById(selectedMeshId)
  if selectedMesh and fieldsCopy then
local function setAllNodesWidthActionUndo(actionData)
  local mesh = scenetree.findObjectById(actionData.meshID)
  for index, oldWidth in pairs(actionData.oldWidths) do
local function setAllNodesWidthActionRedo(actionData)
  local mesh = scenetree.findObjectById(actionData.meshID)
  for index, _ in pairs(actionData.oldWidths) do
local function setAllNodesDepthActionUndo(actionData)
  local mesh = scenetree.findObjectById(actionData.meshID)
  for index, oldDepth in pairs(actionData.oldDepths) do
local function setAllNodesDepthActionRedo(actionData)
  local mesh = scenetree.findObjectById(actionData.meshID)
  for index, _ in pairs(actionData.oldDepths) do
local function setNodeWidthDepthActionUndo(actionData)
  local mesh = scenetree.findObjectById(actionData.meshID)
  for _, nodeID in ipairs(actionData.nodeIDs) do
local function setNodeWidthDepthActionRedo(actionData)
  local mesh = scenetree.findObjectById(actionData.meshID)
  for _, nodeID in ipairs(actionData.nodeIDs) do
local function positionNodeActionUndo(actionData)
  local mesh = scenetree.findObjectById(actionData.meshID)
  for _, nodeID in ipairs(actionData.nodeIDs) do
local function positionNodeActionRedo(actionData)
  local mesh = scenetree.findObjectById(actionData.meshID)
  for _, nodeID in ipairs(actionData.nodeIDs) do
local function rotateNodeActionUndo(actionData)
  local mesh = scenetree.findObjectById(actionData.meshID)
  for _, nodeID in ipairs(actionData.nodeIDs) do
local function rotateNodeActionRedo(actionData)
  local mesh = scenetree.findObjectById(actionData.meshID)
  for _, nodeID in ipairs(actionData.nodeIDs) do
local function insertNodeActionUndo(actionData)
  local mesh = scenetree.findObjectById(actionData.meshID)
  for index = #actionData.nodeInfos, 1, -1 do
local function onDeleteSelection()
  local selectedMesh = selectedMeshId and scenetree.findObjectById(selectedMeshId)
  if selectedMesh then
local function splitMeshActionUndo(actionData)
  local originalMesh = scenetree.findObjectById(actionData.originalMeshID)
  editor.deleteMeshNode(originalMesh, originalMesh:getNodeCount() - 1)

  local newMesh = scenetree.findObjectById(actionData.newMeshID)
  local nodes = editor.getNodes(newMesh)
local function splitMeshActionRedo(actionData)
  local originalMesh = scenetree.findObjectById(actionData.originalMeshID)
  local newMeshNodes = {}
  end
  local selectedMesh = selectedMeshId and scenetree.findObjectById(selectedMeshId)
  if selectedMesh and (not tableIsEmpty(selectedNodes)) and selectedMesh:getNodeCount() > 0 then

  local selectedMesh = selectedMeshId and scenetree.findObjectById(selectedMeshId)
  if selectedMesh and editor.keyModifiers.shift and tableSize(selectedNodes) == 1 and selectedNode and (selectedNode == 0 or selectedNode == selectedMesh:getNodeCount() - 1) then
local function gizmoDragging()
  local selectedMesh = selectedMeshId and scenetree.findObjectById(selectedMeshId)
  if not selectedMesh then return end
local function gizmoEndDrag()
  local selectedMesh = selectedMeshId and scenetree.findObjectById(selectedMeshId)
  if selectedMesh then
local function finishMesh()
  local selectedMesh = selectedMeshId and scenetree.findObjectById(selectedMeshId)
  if selectedMesh then

  local selectedMesh = selectedMeshId and scenetree.findObjectById(selectedMeshId)
            editor.selectObjectById(meshInfo.meshID)
            selectedMesh = scenetree.findObjectById(meshInfo.meshID)
          end
            editor.selectObjectById(newMeshID)
            selectedMesh = scenetree.findObjectById(newMeshID)
          end
    for _, id in ipairs(selectedIds) do
      local object = scenetree.findObjectById(id)
      if object:getClassName() == M.type then
@/lua/ge/extensions/flowgraph/nodes/debug/aiDebug.lua
  if self.pinIn.vehId.value and self.pinIn.vehId.value ~= 0 then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/editor/decalEditor.lua
local function createTemplateActionUndo(actionData)
  local template = scenetree.findObjectById(actionData.id)
  if selectedTemplate and selectedTemplate:getID() == template:getID() then
  editor.setFieldValue(actionData.id, "name", actionData.name)
  local template = scenetree.findObjectById(actionData.id)
local function deleteTemplateActionRedo(actionData)
  local template = scenetree.findObjectById(actionData.id)
  for i = 1, #selectedIds do
    local template = scenetree.findObjectById(selectedIds[i])
    if template:getClassName() == "DecalData" then
@/lua/ge/extensions/flowgraph/nodes/vehicle/flipUpright.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/scenario/speedGoal.lua
    local fobjData = map.objects[map.objectNames[instance.vehicleName]]
    local vehicle = scenetree.findObjectById(instance.vId)
    if not fobjData and vehicle then
@/lua/ge/extensions/core/input/vehicleSwitching.lua
      local nextId = vehicleOrder[nextIndex]
      if scenetree.findObjectById(nextId) then
        if be then
        if be then
          be:enterVehicle(player, scenetree.findObjectById(nextId))
          extensions.hook('trackNewVeh')
@/lua/ge/extensions/core/terrain.lua
local function getTerrain()
  local terrain = terrainId and scenetree.findObjectById(terrainId)
  if not terrain then
@/lua/ge/extensions/flowgraph/nodes/vehicle/freeze.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/customVehicleGetter.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/editor/tech/roadArchitect/roads.lua
    local selObj = editor.selection.object[i]
		local sel = scenetree.findObjectById(selObj)
		if sel and sel:getClassName() == "DecalRoad" then                                               -- Filter into decal roads only.
@/gameplay/missionTypes/scatterPickup/customNodes/scatterPrefabSetupNode.lua
    if id then
      local obj = scenetree.findObjectById(id)
      if editor and editor.onRemoveSceneTreeObjects then
@/lua/ge/extensions/gameplay/util/crashDetection.lua

  local damageSum = scenetree.findObjectById(crashData.vehId):getSectionDamageSum() or 0
    lastFrameDamage = vehMapObject.damage or 0,
    lastFrameDamageSum = scenetree.findObjectById(vehId_):getSectionDamageSum() or 0,
    totalPreImpactDamage = 0,
@/lua/ge/extensions/editor/gen/top.lua
				if c.id then
					scenetree.findObjectById(c.id):delete()
				end
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/rallyMoveVehicleTo.lua
    local vehId = self.pinIn.vehId.value
    local veh = scenetree.findObjectById(vehId)
    if not veh then
@/lua/ge/extensions/util/stepHandler.lua
  else
    local veh = scenetree.findObjectById(step.vehId)
    if veh then
@/lua/ge/extensions/editor/assemblySpline/splineMgr.lua
  -- Create a new scene tree folder for the assembly spline.
  if not spline.sceneTreeFolderId or not scenetree.findObjectById(spline.sceneTreeFolderId) then
    local newFolder = createObject("SimGroup")
  if spline.sceneTreeFolderId then
    local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
    if folder and simObjectExists(folder) then
    if data.isUpdateSceneTree then
      local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
      if folder then
@/lua/ge/extensions/flowgraph/nodes/scene/hide.lua
  if self.pinIn.objID.value then
    obj = scenetree.findObjectById(self.pinIn.objID.value)
    self:__setNodeError("input", nil)
@/lua/ge/extensions/editor/bulkRename.lua
  for _, id in ipairs(objectIds) do
    obj = scenetree.findObjectById(id)
@/gameplay/missionTypes/cannon/customNodes/cannonBallDistNode.lua
function C:getBallPosition(id)
  local veh = scenetree.findObjectById(id)
  if not (veh and string.find(veh:getInternalName() or "cannon", "cannon")) then

  local targetPos = scenetree.findObjectById(self.pinIn.targetId.value):getPosition()
  local dist = (targetPos - self:getBallPosition(self.pinIn.cannonId.value)):length()
@/lua/ge/extensions/flowgraph/nodes/vehicle/setIgnition.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/scenario/raceMarkers/crawlMarker.lua
  if self.columnId then
    local centerColumn = scenetree.findObjectById(self.columnId)
    if centerColumn then
  if self.columnId then
    local centerColumn = scenetree.findObjectById(self.columnId)
    if centerColumn then
  if self.columnId then
    local centerColumn = scenetree.findObjectById(self.columnId)
    if centerColumn then
  for _, id in ipairs(self._ids or {}) do
    local obj = scenetree.findObjectById(id)
    if obj then
@/lua/ge/ge_utils.lua
scenetree.findObjectById = function(objectId)
  return Sim.findObjectById(objectId)
end
  if vehicleID then
    vehicle = scenetree.findObjectById(vehicleID)
  else
function getVehicleColorPalette(index, vehicleId)
  local vehicle = vehicleId and scenetree.findObjectById(vehicleId) or getPlayerVehicle(0)
  if not vehicle then return end
function checkVehicleProperty(vid, propertyName, value)
  local sceneVehicle = scenetree.findObjectById(vid)
  return sceneVehicle and sceneVehicle[propertyName] == value
function setVehicleProperty(vid, propertyName, value)
  local sceneVehicle = scenetree.findObjectById(vid)
  if sceneVehicle then
  obj2 = Sim.findObject('hey')
  obj2:findObjectById(3)
function getVehiclePaint(vehicleId)
  local vehicle = vehicleId and scenetree.findObjectById(vehicleId) or getPlayerVehicle(0)
  if not vehicle then return nil end
  if not vehicleData then
    local vehicle = scenetree.findObjectById(vid)
    if not vehicle then
@/lua/ge/extensions/gameplay/drift/drift.lua
  if vehId and not veh then
    veh = scenetree.findObjectById(vehId)
  else
@/lua/ge/extensions/editor/veMain.lua
  for i = 1, #selectedIds do
    local object = scenetree.findObjectById(selectedIds[i])
    if object and object:getClassName() == "BeamNGVehicle" then
@/lua/ge/extensions/editor/api/objectHistoryActions.lua
local function createObjectUndo(actionData)
  local obj = Sim.findObjectById(actionData.objectId)
  if obj then
  if actionData.parentId then
    local parent = scenetree.findObjectById(actionData.parentId)
    parent:addObject(obj.obj)
  end
  local obj = scenetree.findObjectById(actionData.objectId)
  if obj and actionData.nextObjIdInGroup then
  if obj and actionData.nextObjIdInGroup then
    local otherObj = scenetree.findObjectById(actionData.nextObjIdInGroup)
    if otherObj then
      if parentGroupID then
        local parentGroup = scenetree.findObjectById(parentGroupID)
        if parentGroup then
local function deleteObjectRedo(actionData)
  local obj = Sim.findObjectById(actionData.objectId)
  if obj and not obj:isLocked() then
local function setObjectTransformUndo(actionData)
  local obj = Sim.findObjectById(actionData.objectId)
  if obj then
local function setObjectTransformRedo(actionData)
  local obj = Sim.findObjectById(actionData.objectId)
  if obj then
local function setObjectScaleUndo(actionData)
  local obj = Sim.findObjectById(actionData.objectId)
  if obj then
local function setObjectScaleRedo(actionData)
  local obj = Sim.findObjectById(actionData.objectId)
  if obj then
  for i, id in ipairs(objIds) do
    local obj = Sim.findObjectById(id)
    if obj then
  for i, id in ipairs(objIds) do
    local obj = Sim.findObjectById(id)
    if obj then
  for i, id in ipairs(objIds) do
    local obj = Sim.findObjectById(id)
    if obj then
@/lua/ge/extensions/flowgraph/nodes/vehicle/toShowroom.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/flowgraph/nodes/mission/getCustomVehicleData.lua
  if self.pinIn.vehId.value then
    local veh = scenetree.findObjectById(self.pinIn.vehId.value)
@/lua/ge/extensions/flowgraph/nodes/vehicle/alignForCoupling.lua
      if self.pinIn.vehId.value then
        v1 = scenetree.findObjectById(self.pinIn.vehId.value)
      end
      if self.pinIn.trailerId.value then
        v2 = scenetree.findObjectById(self.pinIn.trailerId.value)
      end
@/lua/ge/extensions/freeroam/crashCamMode.lua
local function buildPath()
  local veh1 = scenetree.findObjectById(crashCamData.id1)
  local veh2 = scenetree.findObjectById(crashCamData.id2)
  local veh1 = scenetree.findObjectById(crashCamData.id1)
  local veh2 = scenetree.findObjectById(crashCamData.id2)
  local bb1 = veh1:getSpawnWorldOOBB()
        -- check if the two vehicles are intersecting
        local otherVeh = scenetree.findObjectById(crashCamData.id2)
        if bbsIntersect(playerVeh:getSpawnWorldOOBB(), otherVeh:getSpawnWorldOOBB()) then
@/lua/ge/extensions/gameplay/crawl/crawlFlowgraphBridge.lua
  if vehicleId then
    veh = scenetree.findObjectById(vehicleId)
  else

  local veh = scenetree.findObjectById(bridgeState.activeCrawlerId)
  if not veh then
@/lua/ge/extensions/flowgraph/nodes/vehicle/groundDistance.lua

  local veh = scenetree.findObjectById(self.pinIn.vehId.value)
  if not veh then return end
@/lua/ge/extensions/flowgraph/nodes/scene/getObjectField.lua
  if not self.pinIn.objectId.value or not self.pinIn.fieldName.value then return end
  local obj = scenetree.findObjectById(self.pinIn.objectId.value)
  if not obj then return end
@/gameplay/missionTypes/collection/customNodes/collectionMarkersNode.lua
  for _, m in ipairs(self.mgr.markerData or {}) do
    local markerObj = scenetree.findObjectById(m.markerObjectId)
    if markerObj then
    end
    local lightObj = scenetree.findObjectById(m.lightObjectId)
    if lightObj then
    local clr = m.colorTimer
    local markerObj = scenetree.findObjectById(m.markerObjectId)
    if markerObj then

    local lightObj = scenetree.findObjectById(m.lightObjectId)
    if lightObj then
@/lua/ge/extensions/gameplay/rally/loop/stagedCountdownUtils.lua

  local veh = scenetree.findObjectById(vehId)
  if veh then

  local veh = scenetree.findObjectById(vehId)
  if veh then
@/lua/ge/extensions/editor/sceneTree.lua
local function getGroupNodeIcon(node)
  local object = scenetree.findObjectById(node.id)
  if object and object:getField("unpacked_prefab", "") == "1" then
    if #instance.selectedNodes == 1 then
      if instance.selectedNodes[1].isGroup then return scenetree.findObjectById(instance.selectedNodes[1].id) end
    end
    end
    if instance.selectedNodes[1].parent then return scenetree.findObjectById(instance.selectedNodes[1].parent.id) end
  end
    for _, objId in ipairs(childrenIds) do
      local object = scenetree.findObjectById(objId)
      if object then
  if passed and searchRange > 0 then
    local object = scenetree.findObjectById(node.id)
    node.cameraDistance = math.huge
  sceneTreeInstance.selectedNodes = {}
  local obj = scenetree.findObjectById(actionData.objectID)
  if obj then obj:deleteObject() end
  else
    local parentObject = scenetree.findObjectById(actionData.groupParentID)
    if parentObject then
  for _, node in ipairs(instance.selectedNodes) do
    local object = scenetree.findObjectById(node.id)
    if object then
    local newName = ffi.string(inputTextValue)
    local object = scenetree.findObjectById(editingNodeName.id)
    if object then
  for i = #actionData.objects, 1, -1 do
    local object = scenetree.findObjectById(actionData.objects[i])
    if object then
    if object then
      local oldGroup = scenetree.findObjectById(actionData.oldGroups[i])
      if oldGroup then
        if actionData.placeholderObjects[i] then
          local placeholderObject = scenetree.findObjectById(actionData.placeholderObjects[i])
          if placeholderObject then
  -- Add to New Group
  local newGroup = scenetree.findObjectById(actionData.newGroup)
  if not newGroup then return end
  if actionData.destObject then
    local destObject = scenetree.findObjectById(actionData.destObject)
    for i = 1, #actionData.objects do
    for i = 1, #actionData.objects do
      local object = scenetree.findObjectById(actionData.objects[i])
      if object then
    for i = #actionData.objects, 1, -1 do
      local object = scenetree.findObjectById(actionData.objects[i])
      if object and newGroup.add and newGroup.bringToFront then
      if oldGroupId ~= actionData.newGroup then
        local group = scenetree.findObjectById(oldGroupId)
        if group then
    if selNode then
      local object = scenetree.findObjectById(selNode.id)
      if selNode.isGroup and not addSelectedObjects then

  return scenetree.findObjectById(actionInfo.newGroup)
end
local function sortGroupNode(instance, node, recursive)
  local object = scenetree.findObjectById(node.id)
  if node.isGroup and object then
      groupProcessed[groupId] = true
      local group = scenetree.findObjectById(groupId)
      for _, instance in pairs(guiInstancer.instances) do
local function boolFieldButton(instance, node, field, iconOn, iconOff)
  local object = scenetree.findObjectById(node.id)
  if not object then return end

  local object = scenetree.findObjectById(node.id)
  local textCol = textColor

      local parent = scenetree.findObjectById(node.parent.id)
      if imgui.IsMouseReleased(0) and parent and not node.parent.selected and not isGroupChildOfSelection(instance, parent) then
        for _, node in ipairs(instance.selectedNodes) do
          local object = scenetree.findObjectById(node.id)
          local parent = scenetree.findObjectById(node.parent.id)
          local object = scenetree.findObjectById(node.id)
          local parent = scenetree.findObjectById(node.parent.id)
          if object and parent then

  local object = scenetree.findObjectById(node.id)
  if not object then
    imgui.Separator()
    local object = scenetree.findObjectById(node.id)
    if object and node.className ~= "Prefab" then
          local newName = ffi.string(inputTextValue)
          local object = scenetree.findObjectById(node.id)
          if object then
      if tableContains(objectIds, node.id) then
        local object = scenetree.findObjectById(node.id)
        node.name = getNameOrClassName(object)
      if node then
        local obj = scenetree.findObjectById(node.id)
        local prefabInstance = Engine.Prefab.findPrefabForChild(obj)
local function debugNode(id, level)
  local object = scenetree.findObjectById(id)
  if object then
@/lua/ge/extensions/freeroam/specialTriggers.lua
local function setState(id, state) -- updates the state of a single object
  local obj = scenetree.findObjectById(id)
  if not obj then return end
local function setGroupState(id, state) -- sets the visible state of a single object or SimGroup
  local obj = scenetree.findObjectById(id or 0)
  if obj then
        for _, o in ipairs(obj:getObjects()) do
          local obj = scenetree.findObjectById(tonumber(o) or scenetree.findObject(o):getID())
          if obj:getGroup():getName() == k and obj:getClassName() ~= 'SimGroup' then
          for _, o in ipairs(obj:getObjects()) do
            local obj = scenetree.findObjectById(tonumber(o) or scenetree.findObject(o):getID())
            if obj:getGroup():getName() == k and obj:getClassName() == 'SimGroup' then
                    for _, o1 in ipairs(innerObjects) do
                      local obj1 = scenetree.findObjectById(tonumber(o1) or scenetree.findObject(o1):getID())
                      if obj1 and obj1:getGroup():getName() == name and obj1:getClassName() == 'SimGroup' then
@/lua/ge/extensions/editor/meshSpline/splineMgr.lua
  -- Create a new scene tree folder for the mesh spline.
  if not spline.sceneTreeFolderId or not scenetree.findObjectById(spline.sceneTreeFolderId) then
    local newFolder = createObject("SimGroup")
  if spline.sceneTreeFolderId then
    local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
    if folder and simObjectExists(folder) then
    if data.isUpdateSceneTree then
      local folder = scenetree.findObjectById(spline.sceneTreeFolderId)
      if folder then
@/lua/ge/extensions/gameplay/backgroundActivities/g2g.lua
  for _, data in ipairs(vehicleIds) do
    local obj = scenetree.findObjectById(data.vehId)
    if obj then
@/lua/ge/extensions/flowgraph/nodes/scene/setObjectField.lua
  if not self.pinIn.objectId.value or not self.pinIn.fieldName.value or not self.pinIn.value.value then return end
  local obj = scenetree.findObjectById(self.pinIn.objectId.value)
  self.pinOut.objectFound.value = (obj ~= nil)
@/lua/ge/extensions/scenario/raceMarkers/ringMarker.lua
  for _, id in ipairs(self._ids or {}) do
    local obj = scenetree.findObjectById(id)
    if obj then
@/lua/ge/extensions/gameplay/crawl/flowgraphBridge.lua
  if vehicleId then
    veh = scenetree.findObjectById(vehicleId)
  else
  if vehicleId then
    veh = scenetree.findObjectById(vehicleId)
  else
    elseif crawlersData[1] and crawlersData[1].id then
      veh = scenetree.findObjectById(crawlersData[1].id)
    else

  local veh = scenetree.findObjectById(activeCrawlerId)
  if not veh then
@/lua/ge/extensions/flowgraph/nodes/vehicle/isPlayerUsable.lua
  if self.pinIn.vehId.value and self.pinIn.vehId.value ~= 0 then
    source = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/client/postFx/dof.lua
  if veh then
    local sceneObject = scenetree.findObjectById(be:getPlayerVehicleID(0))
    if sceneObject and not Engine.sceneGetCameraFrustum():isBoxOutside(sceneObject:getWorldBox()) then
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/wheelDistance.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/gameplay/rally/util.lua
local function getVehFrontCenter(vehId)
  local veh = scenetree.findObjectById(vehId)
  if not veh then return nil end
local function getVehFrontBottom(vehId)
  local veh = scenetree.findObjectById(vehId)
  if not veh then return nil end
local function drawVehBB(vehId)
  local veh = scenetree.findObjectById(vehId)
  if not veh then return end
@/lua/ge/extensions/gameplay/drag/debug.lua
    local currId = editor.selection.object[1]
    if not classNames or arrayFindValueIndex(classNames, scenetree.findObjectById(currId).className) then
      id = currId
@/gameplay/missionTypes/cannon/customNodes/cannonPreviewNode.lua
function C:work()
  local veh = scenetree.findObjectById(self.pinIn.vehId.value)
  if veh and string.find(veh:getInternalName() or "",'cannon') then
@/lua/ge/extensions/flowgraph/nodes/environment/directionalGravity.lua
function C:_executionStopped()
  local veh = self.pinIn.vehId.value and scenetree.findObjectById(self.pinIn.vehId.value) or getPlayerVehicle(0)

  local veh = self.pinIn.vehId.value and scenetree.findObjectById(self.pinIn.vehId.value) or getPlayerVehicle(0)
  if not veh then return end
    if self.pinIn.vehId.value then
      veh = scenetree.findObjectById(self.pinIn.vehId.value)
    else
@/lua/ge/extensions/career/modules/delivery/progress.lua
            for vehId, data in pairs(data) do
              local veh = scenetree.findObjectById(vehId)
              core_vehicleBridge.executeAction(veh, 'setFreeze', false)
      for vehId, data in pairs(data) do
        local veh = scenetree.findObjectById(vehId)
        core_vehicleBridge.executeAction(veh, 'setFreeze', false)
  if active then
    local sound = scenetree.findObjectById(soundObjectIds[soundLabel])
    if sound then
    for label, _ in pairs(soundNames) do
      local sound = scenetree.findObjectById(soundObjectIds[label])
      if sound then
@/lua/ge/extensions/core/trafficSignals.lua
  for _, id in ipairs(self.linkedObjects) do -- actual traffic signal objects
    local obj = scenetree.findObjectById(id)
    if obj then
      if alsoDelete then
        scenetree.findObjectById(objId):delete()
      else
      else
        scenetree.findObjectById(objId):setDynDataFieldbyName('signalInstance', 0, '')
      end
  if scenetree.objectExists(objId) then
    scenetree.findObjectById(objId):setDynDataFieldbyName('signalInstance', 0, self.name)
  end
  if scenetree.objectExists(objId) then
    scenetree.findObjectById(objId):setDynDataFieldbyName('signalInstance', 0, '')
  end
      for _, oid in ipairs(signalObjects) do
        local obj = scenetree.findObjectById(oid)
        if obj then
  -- generally unused; see SignalInstance:setStrictState
  local obj = scenetree.findObjectById(id)
  stateArray = stateArray or {false, false, false}
@/lua/ge/extensions/core/camera.lua
  if not vehId then return end
  local veh = scenetree.findObjectById(vehId)
  if not veh then
  if not vehId then return end
  local veh = scenetree.findObjectById(vehId)
  if not veh then return end -- no LUA camera is being used atm
@/lua/ge/extensions/core/couplerCameraModifier.lua

  local obj1 = scenetree.findObjectById(objId1_)
  local obj2 = scenetree.findObjectById(objId2_)
  local obj1 = scenetree.findObjectById(objId1_)
  local obj2 = scenetree.findObjectById(objId2_)
    local obj1, obj2
    if objId1 then obj1 = scenetree.findObjectById(objId1) end
    if objId2 then obj2 = scenetree.findObjectById(objId2) end
    if objId1 then obj1 = scenetree.findObjectById(objId1) end
    if objId2 then obj2 = scenetree.findObjectById(objId2) end

  local obj1 = scenetree.findObjectById(objId1)
  local obj2 = scenetree.findObjectById(objId2)
  local obj1 = scenetree.findObjectById(objId1)
  local obj2 = scenetree.findObjectById(objId2)
@/lua/ge/extensions/gameplay/crashTest/scenarioManager.lua
local function freezeVehicleById(vehId, freeze)
  local veh = scenetree.findObjectById(vehId)
  if veh then

  gameplay_walk.getInVehicle(scenetree.findObjectById(currentStepParameters.plVehId))
  core_camera.setByName(0, "orbit")
  deactivateVehiclesFromOtherStepsFunc(currentStepIndex)
  gameplay_walk.getInVehicle(scenetree.findObjectById(currentStepParameters.plVehId))
  gameplay_crashTest_crashTestTaskList.onNewCrashTestStep(sanitizedStepsData[currentStepIndex])

  local veh = scenetree.findObjectById(currentStepParameters.plVehId)
  core_vehicleBridge.executeAction(veh,'setFreeze', true)
@/lua/ge/extensions/core/groundMarkerArrows.lua
      --log('I', 'arrow', 'Found unused arrow in proxies: ' .. tostring(id))
      return scenetree.findObjectById(id)
    end
  for id, proxy in pairs(arrowProxies) do
    local arrow = scenetree.findObjectById(id)
    if arrow then arrow:delete() end
      proxy.alphaSmootherTarget = 0
      local arrow = scenetree.findObjectById(id)
      if arrow then
    end
    local arrow = scenetree.findObjectById(id)
    if arrow then
          if im.Button("Delete##"..id) then
            local arrow = scenetree.findObjectById(id)
            if arrow then arrow:delete() end
@/lua/ge/extensions/editor/driftDataEditor.lua
      if im.MenuItem1("Create Stunt Zones around Vehicle") then
        local obj = scenetree.findObjectById(be:getPlayerVehicleID(0))
        if obj then
      if im.MenuItem1("Add Donut") then
        local obj = scenetree.findObjectById(be:getPlayerVehicleID(0))
        if obj then
      if im.MenuItem1("Add Drift Through") then
        local obj = scenetree.findObjectById(be:getPlayerVehicleID(0))
        if obj then
      if im.MenuItem1("Add Hit Pole") then
        local obj = scenetree.findObjectById(be:getPlayerVehicleID(0))
        if obj then
    if im.Button("TP player to drift spot") then
      local player = scenetree.findObjectById(be:getPlayerVehicleID(0))
      if player then
@/lua/ge/extensions/flowgraph/nodes/gameplay/zone.lua
        local sites = self.pinIn.sitesData.value
        local veh = scenetree.findObjectById(self.pinIn.vehId.value)
        local oobb = veh:getSpawnWorldOOBB()
@/lua/ge/extensions/editor/roadSpline/groupMgr.lua
  -- Create a new folder for the group.
  if not group.sceneTreeFolderId or not scenetree.findObjectById(group.sceneTreeFolderId) then
    local newFolder = createObject("SimGroup")
    if group.sceneTreeFolderId then
      local folder = scenetree.findObjectById(group.sceneTreeFolderId)
      if folder then
      if group.sceneTreeFolderId then
        local folder = scenetree.findObjectById(group.sceneTreeFolderId)
        if folder then
@/lua/ge/extensions/gameplay/race/startPosition.lua
function C:calculateVehiclePosRot(vehId, lowPrecision)
  local veh = scenetree.findObjectById(vehId)
  if not veh then return nil, nil end
function C:moveResetVehicleTo(vehId, lowPrecision, repair)
  local veh = scenetree.findObjectById(vehId)
  log('D', logTag, 'moving vehicle to start position')
function C:setToVehicle(vehId)
  local veh = scenetree.findObjectById(vehId)
  if not veh then return end
@/lua/ge/extensions/editor/trafficManager.lua
    if scenetree.objectExistsById(session.lights[id].spawnedObjectId or 0) then
      scenetree.findObjectById(session.lights[id].spawnedObjectId):delete()
    end
          if scenetree.objectExistsById(session.lights[currSelection.light].spawnedObjectId or 0) then
            scenetree.findObjectById(session.lights[currSelection.light].spawnedObjectId):delete()
          end
@/lua/ge/extensions/editor/dataBlockEditor.lua
local function createDataBlockActionUndo(actionData)
  local dataBlock = scenetree.findObjectById(actionData.id)
  editor.clearObjectSelection()
  else
    local dataBlock = scenetree.findObjectById(actionData.id)
    Sim.getDataBlockSet():addObject(dataBlock)
local function deleteDataBlockActionUndo(actionData)
  local dataBlock = scenetree.findObjectById(actionData.id)
  editor.addDataBlockToFile(dataBlock, dataBlock:getFileName())
local function deleteDataBlockActionRedo(actionData)
  local dataBlock = scenetree.findObjectById(actionData.id)
  editor.removeDataBlockFromFile(dataBlock)
                    if editor.selection.object and editor.selection.object[1] then
                      local selected = scenetree.findObjectById(editor.selection.object[1])
                      if selected then
              if isDataBlock(editor.selection.object[1]) then
                editor.saveDataBlockToFile(scenetree.findObjectById(editor.selection.object[1]))
              end
  if isDataBlock(selectedID) then
    editor.setDataBlockDirty(scenetree.findObjectById(selectedID))
  end
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/customVlua_string.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  customLUAString = self.pinIn.customLUA.value
@/lua/ge/extensions/gameplay/garageMode.lua
    if spawnPoint then
      local vehicle = scenetree.findObjectById(vehicleId)
      spawn.safeTeleport(vehicle, spawnPoint:getPosition(), quat(0,0,1,0) * spawnPoint:getRotation(), nil, nil, nil, true)
@/lua/ge/extensions/career/modules/delivery/general.lua
        for vehId, data in pairs(data) do
          local veh = scenetree.findObjectById(vehId)
          core_vehicleBridge.executeAction(veh, 'setFreeze', false)
    for vehId, data in pairs(data) do
      local veh = scenetree.findObjectById(vehId)
      core_vehicleBridge.executeAction(veh, 'setFreeze', false)
  for vehId, data in pairs(updatePerVehicle) do
    local veh = scenetree.findObjectById(vehId)
  for vehId, data in pairs(updatePerVehicle) do
    local veh = scenetree.findObjectById(vehId)
    core_vehicleBridge.requestValue(veh, function(vehCargoContainerData)
@/lua/ge/extensions/flowgraph/nodes/vehicle/teleportToLastRoad.lua
  if self.pinIn.vehId.value then
    veh = scenetree.findObjectById(self.pinIn.vehId.value)
  else
@/lua/ge/extensions/gameplay/crawl/utils.lua
  for _, id in ipairs(spawnedPrefabIds) do
    local obj = scenetree.findObjectById(id)
    if obj then

  local prefab = scenetree.findObjectById(prefabId)
  if not prefab then
@/lua/ge/extensions/editor/main.lua
  for _, objId in ipairs(editor.selection.object) do
    local obj = scenetree.findObjectById(objId)
    if obj then obj:setSelected(enable) end
@/lua/ge/extensions/gameplay/markers/gasStationMarker.lua
  self.pumps = {}
  iconRendererObj = scenetree.findObjectById(self.iconRendererId)
  for idx, pair in ipairs(cluster.pumps or {}) do
@/lua/ge/extensions/gameplay/markers/parkingMarker.lua
function C:setup(cluster)
  iconRendererObj = scenetree.findObjectById(self.iconRendererId)
  end
  outlineTmp = scenetree.findObjectById(self.outlineId)
  if outlineTmp then
  if self.lastAlpha ~= cruisingFactor then
    outlineTmp = scenetree.findObjectById(self.outlineId)
    if outlineTmp  then

  outlineTmp = scenetree.findObjectById(self.outlineId)
  if outlineTmp then
  end
  outlineTmp = scenetree.findObjectById(self.outlineId)
  if outlineTmp then
@/lua/ge/extensions/editor/roadSpline/layerMgr.lua
    for i = 1, #layer.decalRoadIds do
      local decalRoad = scenetree.findObjectById(layer.decalRoadIds[i])
      if decalRoad then
  if layer.decalRoadId then
    local decalRoad = scenetree.findObjectById(layer.decalRoadId)
    if decalRoad then
  -- Get the Road Spline's scene tree folder.
  local folder = scenetree.findObjectById(group.sceneTreeFolderId)

  if not layer.decalRoadId or not scenetree.findObjectById(layer.decalRoadId) then
    local drtest = scenetree.findObjectById(layer.decalRoadId)
  if not layer.decalRoadId or not scenetree.findObjectById(layer.decalRoadId) then
    local drtest = scenetree.findObjectById(layer.decalRoadId)
    if not drtest or drtest:getClassName() ~= "DecalRoad" then -- Even if there is an id, we need to ensure it is a decal road object.
  -- Update the properties of the decal road object.
  local dRoad = scenetree.findObjectById(layer.decalRoadId)
  dRoad:setField("textureLength", 0, layer.texLen)