GE Lua Documentation

Press F to search!

findObject

Definition


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

Callers

@/lua/ge/extensions/editor/api/valueInspector.lua
          local clickedImage = false
          local mat = scenetree.findObject(objName)
          if mat then
  elseif fieldTypeName == "TypeCubemapName" or fieldTypeName == "TypeCubemapData" then
    self:displaySimSetPopupList({Sim.getRootGroup(), Sim.findObject("LevelLoadingGroup")}, fieldName, fieldNameId, fieldValue, self.selectedIds, customData, 0, "CubemapData")
  -------------------------------------------------------------------------------------------------------------------------
        editor.editingObjectName = false
        if scenetree.findObject(val) then
          local msg = "'" .. val .. "' already exists in the scene, please choose another name"
@/lua/ge/extensions/flowgraph/nodes/gameplay/blacklistWalking.lua
      for _, name in ipairs(scenetree.findClassObjects("BeamNGVehicle")) do
        local obj = scenetree.findObject(name)
        if obj then
@/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')
@/lua/ge/client/postFx/glow.lua

local pfxGlowBlurVertShader = scenetree.findObject("PFX_GlowBlurVertShader")
if not pfxGlowBlurVertShader then

local pfxGlowBlurHorzShader = scenetree.findObject("PFX_GlowBlurHorzShader")
if not pfxGlowBlurHorzShader then

local pfxGlowCombineStateBlock = scenetree.findObject("PFX_GlowCombineStateBlock")
if not pfxGlowCombineStateBlock then
if not pfxGlowCombineStateBlock then
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  pfxGlowCombineStateBlock = createObject("GFXStateBlockData")

local gammaPostFX = scenetree.findObject("GlowPostFx")
if not gammaPostFX then
@/lua/ge/client/postFx/flash.lua

local pfxFlashShader = scenetree.findObject("PFX_FlashShader")
if not pfxFlashShader then

local flashFx = scenetree.findObject("FlashFx")
if not flashFx then
flashFxCallbacks.setShaderConsts = function()
  local flashFx = scenetree.findObject("FlashFx")
  if flashFx then
@/lua/ge/extensions/freeroam/dragRace.lua
    stageLights = {
      prestageLightL  = {obj = scenetree.findObject("Prestagelight_l"), anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      prestageLightL  = {obj = scenetree.findObject("Prestagelight_l"), anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      stageLightR     = {obj = scenetree.findObject("Stagelight_r"),    anim = "prestage"}
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      stageLightR     = {obj = scenetree.findObject("Stagelight_r"),    anim = "prestage"}
    },
    countDownLights = {
      amberLight1R    = {obj = scenetree.findObject("Amberlight1_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight1R    = {obj = scenetree.findObject("Amberlight1_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      redLightR       = {obj = scenetree.findObject("Redlight_R"),  anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      redLightR       = {obj = scenetree.findObject("Redlight_R"),  anim = "tree"},
      redLightL       = {obj = scenetree.findObject("Redlight_L"),  anim = "tree"}
      redLightR       = {obj = scenetree.findObject("Redlight_R"),  anim = "tree"},
      redLightL       = {obj = scenetree.findObject("Redlight_L"),  anim = "tree"}
    }

  playerVehicle = scenetree.findObject("thePlayer")
end
  for i=1, 5 do
    local leftTimeDigit = scenetree.findObject("display_time_" .. i .. "_l")
    table.insert(leftTimeDigits, leftTimeDigit)

    local rightTimeDigit = scenetree.findObject("display_time_" .. i .. "_r")
    table.insert(rightTimeDigits, rightTimeDigit)

    local rightSpeedDigit = scenetree.findObject("display_speed_" .. i .. "_r")
    table.insert(rightSpeedDigits, rightSpeedDigit)

    local leftSpeedDigit = scenetree.findObject("display_speed_" .. i .. "_l")
    table.insert(leftSpeedDigits, leftSpeedDigit)
  triggers = {
    dragTriggerL  = scenetree.findObject("dragTrigger_L"),
    dragTriggerR  = scenetree.findObject("dragTrigger_R"),
    dragTriggerL  = scenetree.findObject("dragTrigger_L"),
    dragTriggerR  = scenetree.findObject("dragTrigger_R"),
    startTriggerL = scenetree.findObject("startTrigger_L"),
    dragTriggerR  = scenetree.findObject("dragTrigger_R"),
    startTriggerL = scenetree.findObject("startTrigger_L"),
    startTriggerR = scenetree.findObject("startTrigger_R"),
    startTriggerL = scenetree.findObject("startTrigger_L"),
    startTriggerR = scenetree.findObject("startTrigger_R"),
    endTriggerL   = scenetree.findObject("endTrigger_L"),
    startTriggerR = scenetree.findObject("startTrigger_R"),
    endTriggerL   = scenetree.findObject("endTrigger_L"),
    endTriggerR   = scenetree.findObject("endTrigger_R"),
    endTriggerL   = scenetree.findObject("endTrigger_L"),
    endTriggerR   = scenetree.findObject("endTrigger_R"),
    laneTriggerL  = scenetree.findObject("laneTrigger_L"),
    endTriggerR   = scenetree.findObject("endTrigger_R"),
    laneTriggerL  = scenetree.findObject("laneTrigger_L"),
    laneTriggerR  = scenetree.findObject("laneTrigger_R"),
    laneTriggerL  = scenetree.findObject("laneTrigger_L"),
    laneTriggerR  = scenetree.findObject("laneTrigger_R"),
    opponentSpawnTrigger = scenetree.findObject("opponentSpawnTrigger")
    laneTriggerR  = scenetree.findObject("laneTrigger_R"),
    opponentSpawnTrigger = scenetree.findObject("opponentSpawnTrigger")
  }

  if not scenetree.findObject(opponentVehicleName) then
    local options = {}
@/lua/ge/serverConnection.lua
  if worldReadyState == 0 then
    local canvas = scenetree.findObject("Canvas")
    if canvas then
  if p then p:add("disconnectActual.physicsStopSimulation") end
  local canvas = scenetree.findObject("Canvas")
  if p then p:add("disconnectActual.findCanvas") end
@/lua/ge/extensions/util/autoAnnotation.lua
M.autoAnnotateScenetree = function()
  local root = Sim.findObject('MissionGroup')
M.autoAnnotateGroups = function()
  local forestItems = Sim.findObject('ForestItemDataSet')
  visitNode(forestItems, forestItems)
@/lua/ge/extensions/flowgraph/nodes/mission/countdownLightsController.lua
    countDownLights = {
      amberLight1R    = {obj = scenetree.findObject("Amberlight1_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight1R    = {obj = scenetree.findObject("Amberlight1_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      redLightR       = {obj = scenetree.findObject("Redlight_R"),    anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      redLightR       = {obj = scenetree.findObject("Redlight_R"),    anim = "tree"},
      redLightL       = {obj = scenetree.findObject("Redlight_L"),    anim = "tree"}
      redLightR       = {obj = scenetree.findObject("Redlight_R"),    anim = "tree"},
      redLightL       = {obj = scenetree.findObject("Redlight_L"),    anim = "tree"}
    }
@/lua/ge/extensions/freeroam/gasStations.lua
  for _, pair in ipairs(f.pumps or {}) do
    local obj = scenetree.findObject(pair[1])
    if obj then
  for _, pair in ipairs(f.pumps or {}) do
    local obj = scenetree.findObject(pair[1])
    if obj then
@/lua/ge/extensions/editor/particleEditor.lua
local function resetEditableEmitterNode()
  if scenetree.findObject("editableEmitterNode") then
    scenetree.findObject("editableEmitterNode"):delete()
  if scenetree.findObject("editableEmitterNode") then
    scenetree.findObject("editableEmitterNode"):delete()
  end
      stringList = stringList:sub(last+1)
      local particleData = scenetree.findObject(particleDataName)
      if particleData then
  emitter:reload()
  selectParticle(scenetree.findObject(string.match(emitter:getField("particles", ""), '(%S+)')))
end
    if lastFrameEmitterID ~= currentEmitter:getID() then
      currentParticle = scenetree.findObject(string.match(currentEmitter:getField("particles", ""), '(%S+)'))
      lastFrameEmitterID = currentEmitter:getID()
        deleteParticle(currentParticle)
        selectParticle(scenetree.findObject(string.match(currentEmitter:getField("particles", ""), '(%S+)')))
        confirmationWindowOpen = true
        particleNames[i] = newParticleName
        selectParticle(scenetree.findObject(newParticleName))
        valueChanged = true
        table.remove(particleNames, i)
        selectParticle(scenetree.findObject(particleNames[1] or ""))
        valueChanged = true
@/lua/ge/extensions/gameplay/race/path.lua
        local pn = path.pathnodes:create(cp)
        local wp = scenetree.findObject(cp)
        if wp then
      local pn = path.pathnodes:create(cp)
      local wp = scenetree.findObject(cp)
      if wp then
  for _, spInfo in ipairs({{'standing','defaultStartPosition'}, {'standingReverse','reverseStartPosition'}, {'rolling','rollingStartPosition'}, {'rollingReverse','rollingReverseStartPosition'}}) do
    local spawnObj = scenetree.findObject(trackInfo.spawnSpheres[spInfo[1]])
    if spawnObj ~= nil then
@/lua/ge/extensions/freeroam/bigMapMarkers.lua

  local clusterIconRenderer = scenetree.findObject("markerIconRenderer")
  if not clusterIconRenderer then return end
@/lua/ge/extensions/editor/sceneTree.lua
local function changeNodeName(node, name)
  local searchedObj = scenetree.findObject(name)
  -- if its a different object, but has same name with out new name, then error
  itemCount = 0
  local rootGrp = Sim.findObject("MissionGroup")
  editor.orderTable = {}
@/lua/ge/extensions/gameplay/drift/saveLoad.lua
        for _, name in ipairs(line.markerObjects or {}) do
          local obj = scenetree.findObject(name)
          if obj then
@/ui/ui-vue/src/services/crossfire.js
  // this will hook the events to UI only, preventing the camera from moving
  bngApi.engineLua(`local o = scenetree.findObject("MenuScrollActionMap"); if o then o:${enable ? "push" : "pop"}() end`)
  if (window.bngVue.uiNavTracker) {
@/lua/ge/extensions/editor/api/roadRiver.lua
  for _, name in ipairs(scenetree.findClassObjects('DecalRoad')) do
    local road = scenetree.findObject(name)
    if not road then --this will happen if one name will begin with numbers
@/lua/ge/extensions/editor/roadSpline/import.lua
      local name = road.name
      local obj = name and scenetree.findObject(name)
      if obj and Sim.upcast(obj) then
  for _, name in pairs(scenetree.findClassObjects("DecalRoad")) do
    local obj = scenetree.findObject(name)
    if obj then
@/lua/ge/extensions/editor/inspector.lua
        local groundCoverMaterialName = groundCover:getField("Material", "")
        local groundCoverMaterial = scenetree.findObject(groundCoverMaterialName)
        local texturePath = "/core/art/warnMat.dds"
@/lua/ge/extensions/c2/panelPlugins/tileManager.lua
  for idx, objName in ipairs(allObjectNames or {}) do
    local obj = scenetree.findObject(objName)
    if obj then
  for i, name in ipairs(entry.objectNames) do
    local obj = scenetree.findObject(name)
    if obj then
    if items == nil then
       local obj = scenetree.findObject(objName)
       if obj and obj.getData then
    local material = item.material
    local obj = scenetree.findObject(name)
    if obj then
@/lua/ge/extensions/editor/gen/terrain.lua

local groupEdit = scenetree.findObject('edit')
local tb = extensions.editor_terrainEditor.getTerrainBlock()
    local terrBlock = TerrainBlock()
    local to = scenetree.findObject(terrBlockName)
    if to then
    )
        print('??^^^^^^^^^^^^^^^^^^^ if_DONE:'..tostring(done)..':'..tostring(scenetree.findObject('m_plaster_worn_01_bat')))

    to = scenetree.findObject(terrBlockName)
        print('?? if_NEW:'..tostring(to)..':'..tostring(groupEdit))
@/lua/ge/client/core.lua

local corePassthruShaderVP = scenetree.findObject("CorePassthruShaderVP")
if not corePassthruShaderVP then
local function createCommonMaterials()
  local warningMaterial = scenetree.findObject("WarningMaterial")
  if not warningMaterial then

  local warnMatCubeMap = scenetree.findObject("WarnMatCubeMap")
  if not warnMatCubeMap then

  local blankWhite = scenetree.findObject("BlankWhite")
  if not blankWhite then

  local empty = scenetree.findObject("Empty")
  if not empty then

  local coronaMat = scenetree.findObject("Corona_Mat")
  if not coronaMat then

  local blackSkyCubemap = scenetree.findObject("BlackSkyCubemap")
  if not blackSkyCubemap then

  local blackSkyMat = scenetree.findObject("BlackSkyMat")
  if not blackSkyMat then

  local blueSkyCubemap = scenetree.findObject("BlueSkyCubemap")
  if not blueSkyCubemap then

  local blueSkyMat = scenetree.findObject("BlueSkyMat")
  if not blueSkyMat then

  local greySkyCubemap = scenetree.findObject("GreySkyCubemap")
  if not greySkyCubemap then

  local greySkyMat = scenetree.findObject("GreySkyMat")
  if not greySkyMat then

  local octahedronMat = scenetree.findObject("OctahedronMat")
  if not octahedronMat then

  local simpleConeMat = scenetree.findObject("SimpleConeMat")
  if not simpleConeMat then

  local cameraMat = scenetree.findObject("CameraMat")
  if not cameraMat then

  local noshapeNoShape = scenetree.findObject("noshape_NoShape")
  if not noshapeNoShape then

  local noshapetextLambert1 = scenetree.findObject("noshapetext_lambert1")
  if not noshapetextLambert1 then

  local noshapetextNoshapeMat = scenetree.findObject("noshapetext_noshape_mat")
  if not noshapetextNoshapeMat then

  local noshapetextNoshapeMat = scenetree.findObject("portal5_portal_top")
  if not noshapetextNoshapeMat then

  local portal5PortalLightray = scenetree.findObject("portal5_portal_lightray")
  if not portal5PortalLightray then

  local spawnArrow = scenetree.findObject("spawn_arrow")
  if not spawnArrow then

  local grid512BlackMat = scenetree.findObject("Grid512_Black_Mat")
  if not grid512BlackMat then

  local grid512BlueMat = scenetree.findObject("Grid512_Blue_Mat")
  if not grid512BlueMat then

  local grid512ForestGreenMat = scenetree.findObject("Grid512_ForestGreen_Mat")
  if not grid512ForestGreenMat then

  local grid512ForestGreenMat = scenetree.findObject("Grid512_ForestGreenLines_Mat")
  if not grid512ForestGreenMat then

  local grid512GreenMat = scenetree.findObject("Grid512_Green_Mat")
  if not grid512GreenMat then

  local grid512GreyMat = scenetree.findObject("Grid512_Grey_Mat")
  if not grid512GreyMat then

  local grid512GreyMat = scenetree.findObject("Grid512_GreyBase_Mat")
  if not grid512GreyMat then

  local grid512OrangeMat = scenetree.findObject("Grid512_Orange_Mat")
  if not grid512OrangeMat then

  local grid512OrangeLinesMat = scenetree.findObject("Grid512_OrangeLines_Mat")
  if not grid512OrangeLinesMat then

  local grid512RedMat = scenetree.findObject("Grid512_Red_Mat")
  if not grid512RedMat then
  -- log('I',logTag,'creating trackbuilder materials....')
  local track_editor_grid = scenetree.findObject("track_editor_grid")
  if not track_editor_grid then

  local track_editor_A_center = scenetree.findObject("track_editor_A_center")
  if not track_editor_A_center then

  local track_editor_A_border = scenetree.findObject("track_editor_A_border")
  if not track_editor_A_border then

  local track_editor_B_center = scenetree.findObject("track_editor_B_center")
  if not track_editor_B_center then

  local track_editor_B_border = scenetree.findObject("track_editor_B_border")
  if not track_editor_B_border then

  local track_editor_C_center = scenetree.findObject("track_editor_C_center")
  if not track_editor_C_center then

  local track_editor_C_border = scenetree.findObject("track_editor_C_border")
  if not track_editor_C_border then

  local track_editor_D_center = scenetree.findObject("track_editor_D_center")
  if not track_editor_D_center then

  local track_editor_D_border = scenetree.findObject("track_editor_D_border")
  if not track_editor_D_border then

  local track_editor_E_center = scenetree.findObject("track_editor_E_center")
  if not track_editor_E_center then

  local track_editor_E_border = scenetree.findObject("track_editor_E_border")
  if not track_editor_E_border then

  local track_editor_F_center = scenetree.findObject("track_editor_F_center")
  if not track_editor_F_center then

  local track_editor_F_border = scenetree.findObject("track_editor_F_border")
  if not track_editor_F_border then

  local track_editor_G_center = scenetree.findObject("track_editor_G_center")
  if not track_editor_G_center then

  local track_editor_G_border = scenetree.findObject("track_editor_G_border")
  if not track_editor_G_border then

  local track_editor_H_center = scenetree.findObject("track_editor_H_center")
  if not track_editor_H_center then

  local track_editor_H_border = scenetree.findObject("track_editor_H_border")
  if not track_editor_H_border then
local function createVehicleData()
  if not scenetree.findObject("PropSelectionCustomMat") then
    local shader = createObject("ShaderData")
@/lua/ge/extensions/gameplay/drag/display.lua
    if prefabInstance then
      local obj = prefabInstance:findObject(name)
      if obj then return obj end
  end
  return scenetree.findObject(name)
end
  for i=1, 5 do
    local timeDigit = scenetree.findObject("display_time_" .. i .. "_r")
    table.insert(time, timeDigit)

    local speedDigit = scenetree.findObject("display_speed_" .. i .. "_r")
    table.insert(speed, speedDigit)
  for i=1, 5 do
    local timeDigit = scenetree.findObject("display_time_" .. i .. "_l")
    table.insert(time, timeDigit)

    local speedDigit = scenetree.findObject("display_speed_" .. i .. "_l")
    table.insert(speed, speedDigit)
@/lua/ge/extensions/editor/gen/world.lua

local groupEdit = scenetree.findObject('edit')
if groupEdit then
end
local groupBat = scenetree.findObject('bat')
			for _,nm in pairs(wrCommon) do
				local mo = scenetree.findObject(nm)
				if mo then
			lo('?? ifTB:'.._..':'..name) --tostring(scenetree.findClassObjects("TerrainBlock")))
		terrainBlockProxies[name] = {selected = false, id = scenetree.findObject(name):getID()}
	end
	local nm = 'dae_tmp' --..tp..'_'..i
	local otmp = scenetree.findObject(nm)
	if otmp then otmp:unregisterObject() end
		list = {}, w = nil, h = nil}
	lo('?? if_FO:'..tostring(scenetree.findObject('ForestItemData')))
end
		local nm = 'dae_'..tp..'_'..i
		local otmp = scenetree.findObject(nm)
		if otmp then otmp:unregisterObject() end
	end
	local oedit = scenetree.findObject('edit')
	lo('?? onQuit:'..tostring(cedit.mesh)..':'..#scenetree.getAllObjects()..' edit:'..tostring(oedit))
			end
			scenetree.findObject('edit'):deleteAllObjects()
			local obj = scenetree.findObjectById(desc.id)
local function up(d, inreload, inact, mode)
	lo('>>++++++++++ W.up:'..tostring(inreload)..':'..tostring(mode)..':'..tostring(forestName)) --..tostring(#core_forest.getForestObject():getData():getItems())) --..forestName..':'..tostring(inreload)..':'..tostring(scenetree.findObject(forestName))..':'..tostring(restored)..':'..tostring(inact)..':'..tostring(forest)..' edit:'..tostring(scenetree.findObject('edit'))..':'..tostring(groupEdit)..':'..tostring(D))
	if not inact or not forest then
local function up(d, inreload, inact, mode)
	lo('>>++++++++++ W.up:'..tostring(inreload)..':'..tostring(mode)..':'..tostring(forestName)) --..tostring(#core_forest.getForestObject():getData():getItems())) --..forestName..':'..tostring(inreload)..':'..tostring(scenetree.findObject(forestName))..':'..tostring(restored)..':'..tostring(inact)..':'..tostring(forest)..' edit:'..tostring(scenetree.findObject('edit'))..':'..tostring(groupEdit)..':'..tostring(D))
	if not inact or not forest then
			-- the moment of loading forest items from level
			lo('??+++++++ forest_up:'..tostring(forestName)..':'..tostring(scenetree.findObject(forestName))..':'..tostring(scenetree.findObject('theForest')),true)
			forest = scenetree.findObject('theForest')
			-- the moment of loading forest items from level
			lo('??+++++++ forest_up:'..tostring(forestName)..':'..tostring(scenetree.findObject(forestName))..':'..tostring(scenetree.findObject('theForest')),true)
			forest = scenetree.findObject('theForest')
			lo('??+++++++ forest_up:'..tostring(forestName)..':'..tostring(scenetree.findObject(forestName))..':'..tostring(scenetree.findObject('theForest')),true)
			forest = scenetree.findObject('theForest')
			if forest then
	end
	local oedit = scenetree.findObject('edit')
	if inact and D then
		groupEdit:registerObject('edit')
		groupEdit = scenetree.findObject('edit')
		scenetree.MissionGroup:addObject(groupEdit)
 	end
    groupBat = scenetree.findObject('bat')
    if not groupBat then
        end
        groupBat = scenetree.findObject('bat')
        groupBat.canSave = false
				else
					scenetree.findObject(o):delete()
				end
	end
	if U._PRD == 0 and not W.ui.injunction and not ({conf=0})[U._MODE] and scenetree.findObject("thePlayer") then
		scenetree.findObject("thePlayer").hidden = true
	if U._PRD == 0 and not W.ui.injunction and not ({conf=0})[U._MODE] and scenetree.findObject("thePlayer") then
		scenetree.findObject("thePlayer").hidden = true
		scenetree.findObject("thePlayer"):delete()
		scenetree.findObject("thePlayer").hidden = true
		scenetree.findObject("thePlayer"):delete()
		local obj = scenetree.findObject("spawn_default")
		scenetree.findObject("thePlayer"):delete()
		local obj = scenetree.findObject("spawn_default")
		if obj then obj.hidden = true end
	if U._PRD == 0 and W.ui.injunction then
		scenetree.findObject("thePlayer"):setPosition(vec3(0, 0, core_terrain.getTerrainHeight(vec3(0,0))))
	end
	restore()
	local fedit = scenetree.findObject('edit')
	if true or U._PRD == 0 then
local function houseUp(desc, toedit, update, prn, fordae)
		lo('>>**************** houseUp:'..tostring(desc)..':'..tostring(toedit)..' prn:'..tostring(prn)..':'..tostring(update)..':'..tostring(desc and desc.prn or nil)..' nfloors:'..tostring(desc and #desc.afloor or nil)..':'..tostring(cedit.forest)..':'..tableSize(adesc)) --..tostring(scenetree.findClassObjects('Roads33'))..':'..tostring(scenetree.findObject("Vegetation")))
	local om
		forsplit = true
		if cedit.mesh and scenetree.findObject('edit') then
			scenetree.findObject('edit'):deleteAllObjects()
		if cedit.mesh and scenetree.findObject('edit') then
			scenetree.findObject('edit'):deleteAllObjects()
		end
--						local materials = Sim.getMaterialSet()
--						local tmat = scenetree.findObject(out.defmat)
--						tmat.doubleSided = true
--						tmat.doubleSided = true
--						local tmat = scenetree.findObject('m_bricks_01_bat')
--						lo('??______________________________________ pre_RENDER:'..#data..':'..#mdatabot.verts) --..tostring(data[2].material)..':'..tostring(tmat)..':'..tostring(tmat.doubleSided)) --..tostring(defmat.doubleSided)..':'..tostring(defmat.obj))
-- UPDATE and QUIT EDIT
			scenetree.findObject('edit'):deleteAllObjects()
			id = toedit
		lo('?? hD.DEL_building:'..tostring(cedit.mesh)..':'..tostring(desc.id))
	scenetree.findObject('edit'):deleteAllObjects()
	scenetree.findObjectById(id):delete()
--    if nm == 'm_stucco_scraped_BAT' then
		local currentMaterial = scenetree.findObject(nm)
			lo('?? if_CHANNELS:'..tostring(currentMaterial.activeLayers)..':'..tostring(currentMaterial.normalMap)..':'..tostring(currentMaterial.normalMapUseUV))
	lo('>> objEditStop:'..tostring(cedit.mesh))
	scenetree.findObject('edit'):deleteAllObjects()
--    lo('?? for_edit:'..tostring(cedit.mesh))
local function forestEdit(key)
--    scenetree.findObject('edit'):deleteAllObjects()
--        U.dump(dforest, '?? forestEdit:'..tostring(key))

	scenetree.findObject('edit'):deleteAllObjects()
      if c.id then
        scenetree.findObject(c.id):delete()
      end
		cedit.forest = nil
		local id = scenetree.findObject(nm):getID() --rayCast.object:getID()
				lo('?? for_o_:'..id..':'..tostring(scope)..':'..tostring(cedit.mesh)..':'..rayCast.object.name)
                  				U.dump(insplit,'?? is_insplit:')
							scenetree.findObject('edit'):deleteAllObjects()
							uvOn()
							if c.id then
								scenetree.findObject(c.id):delete()
							end
--  if nm == forestName and scope == 'top'
	local id = scenetree.findObject(nm):getID()
			lo('?? for_ID:'..tostring(id)..'/'..tostring(cedit.mesh))
				_dbdrag = true
			local om = scenetree.findObject(nm)
				lo('??******* forMM:'..id..':'..nm..':'..tostring(om.obj)..':'..tostring(om.vdata)..':'..tostring(#aedit[id].mesh)) --..':'..tostring(om:getMesh())..':'..tostring(aedit[id]), true)
			end
--            scenetree.findObject('edit'):deleteAllObjects()
			-- TODO: update roof
					if c.id then
						scenetree.findObject(c.id):delete()
					end
				lo('?? DEL_building:'..cedit.mesh..':'..tostring(desc.id))
			scenetree.findObject('edit'):deleteAllObjects()
			scenetree.findObjectById(cedit.mesh):delete()
		end
		scenetree.findObject('edit'):deleteAllObjects()
		scenetree.findObjectById(desc.id):delete()
			for _,nm in pairs(list) do
				if not scenetree.findObject(nm) then
					local om = createObject('TSStatic')
@/lua/ge/extensions/core/audio.lua
    for i, projectName in ipairs(levelProjectsCache) do
      local project = scenetree.findObject(projectName)
      if project then
@/lua/ge/client/renderManager.lua
-- it is initialized when 'AL_FormatToken' is initialzed.
local alFormatTokenState = scenetree.findObject("AL_FormatTokenState")
if not alFormatTokenState then
  alFormatTokenState = createObject("GFXStateBlockData")
  local pfx_defaultstateblock = scenetree.findObject("PFX_DefaultStateBlock")
  if pfx_defaultstateblock then
  alFormatTokenState:setField("samplersDefined", 0, "true")
  local samplerClampPoint = scenetree.findObject("SamplerClampPoint")
  alFormatTokenState.samplerStates = samplerClampPoint
-- the PostEffectManager. Do not call enable() on it.
local alFormatCopy = scenetree.findObject("AL_FormatCopy")
if not alFormatCopy then
  alFormatCopy.shader = "PFX_PassthruShader"
  alFormatCopy.stateBlock = scenetree.findObject("AL_FormatTokenState")
  alFormatCopy.texture = "$inTex"
@/lua/ge/extensions/editor/roadArchitect.lua
          local clickedImage = false
          local mat = scenetree.findObject(objName)
          if mat then
@/lua/ge/extensions/core/busRouteManager.lua
  local triggerPos = {}
  local triggerFolder = scenetree.findObject("busstops")
  if triggerFolder and triggerFolder:getClassName() == "SimGroup" then
@/lua/ge/extensions/editor/api/object.lua
  for _, objName in pairs(objs) do
    local obj = scenetree.findObject(objName)
    if obj and type(obj["onEditorEnable"]) == "function" and type(obj["onEditorDisable"]) == "function" then
      --TODO: cant we get the object refs and not the names? faster
      local obj = scenetree.findObject(objName)
      --TODO: insert unique
    --TODO: cant we get the object refs and not the names? faster
    local obj = scenetree.findObject(objName)
    if obj and obj.className == typeName then
@/lua/ge/client/postFx/MotionBlurFx.lua

local pfxMotionBlurShader = scenetree.findObject("PFX_MotionBlurShader")
if not pfxMotionBlurShader then
motionBlurFXCallbacks.setShaderConsts = function()
  local motionBlurFX = scenetree.findObject("MotionBlurFX")
  if motionBlurFX then

local motionBlurFX = scenetree.findObject("MotionBlurFX")
if not motionBlurFX then
@/lua/ge/extensions/editor/toolUtilities/materialSelectionMgr.lua
      if objId ~= emptyStr and isInFilter and im.ImGuiTextFilter_PassFilter(simSetNameFilter, objId) then
        local mat = scenetree.findObject(objId)
        if mat then
@/lua/ge/extensions/editor/api/material.lua
  -- Check if a material with the given name exists already
  if scenetree.findObject(materialName) then
    log('E', logTag, "A material with the given name '" .. materialName .. "' already exists!")
  if type(material) == "string" then
    material = scenetree.findObject(material)
  end
  if type(material) == "string" then
    material = scenetree.findObject(material)
  end
@/lua/ge/extensions/gameplay/markers/inspectVehicleMarker.lua
  self:clearObjects()
  iconRendererObj = scenetree.findObject(iconRendererName)
  if not iconRendererObj then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj and self.iconId then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj and self.iconInfo then
@/lua/ge/extensions/ui/uiNavi.lua
  for _, pid in pairs(spawnpoints) do
    local o = scenetree.findObject(pid)
    if o then
  for _, pid in pairs(poios) do
    local o = scenetree.findObject(pid)
    if o then
  for _, pid in pairs(stops) do
    local o = scenetree.findObject(pid)
    if o and o.type == 'busstop' then
  --if oid ~= -1 then
  --  local veh = scenetree.findObject(oid)
  --  if veh then
  --if nid ~= -1 then
   -- local veh = scenetree.findObject(nid)
   -- if veh then
@/lua/ge/extensions/core/vehicleTriggers.lua
local function queueCmd(vehId, cmd)
  local vehObj = scenetree.findObject(vehId)
  if vehObj then
@/lua/ge/extensions/career/modules/tether.lua
  bufferLength = bufferLength or 1
  local area = scenetree.findObject(door[1])
  if area then
@/lua/ge/extensions/editor/api/dynamicDecals.lua
    local matSkinPresetName = matName .. ".skin.dynamicTextures"
    local dynDecalMaterial = scenetree.findObject(matSkinPresetName)
    if dynDecalMaterial then
@/lua/ge/extensions/core/input/bindings.lua
    actionMap = actionMap.."ActionMap"
    local am = scenetree.findObject(actionMap)
    am:bind(devname, b.action, b.control, isCentered, b.deadzoneResting, b.deadzoneEnd, b.linearity, b.angle, b.lockType, b.isInverted, b.isForceEnabled, b.isForceInverted, b.useLogitechSDK, b.logitechVibrotactileCoef, b.logitechVibrotactileFreqMax, b.ffb.updateType, jsonEncode(b.ffb), actsOnChange, onChange, actsOnDown, onDown, actsOnUp, onUp, b.filterType, isRelative, player, ctx)
    wasWalking = isWalking
    local o = scenetree.findObject("VehicleSpecificActionMap")
    if o then o:setEnabled(not isWalking) end
@/lua/ge/extensions/editor/tech/roadArchitect/roads.lua
      roadMeshMgr.tryRemoveBridge(road.name)
      local folder = scenetree.findObject("Road Architect - Bridge " .. tostring(road.name))
      if folder then
      if r.isBridge then
        local folder = scenetree.findObject("Road Architect - Bridge " .. tostring(r.name))
        if not folder then
      roadMeshMgr.tryRemoveBridge(road.name)
      local folder = scenetree.findObject("Road Architect - Bridge " .. tostring(road.name))
      if folder then
    if not roads[i].isBridge then
      local folder = scenetree.findObject("Road Architect - Road " .. tostring(i))
      if folder then
@/lua/ge/extensions/core/paths.lua
  end
  local pathObj = scenetree.findObject(pathName)
  if not pathObj then
@/lua/ge/extensions/scenario/demolitionDerby.lua
      for vName, vData in pairs(scenario.vehicles) do
        local vObj = scenetree.findObject(vName)
        if vObj then
@/lua/ge/extensions/util/renderComponentsAPI.lua
    if settingByKey[name].shaderObject then
      local obj = scenetree.findObject(settingByKey[name].shaderObject)
      if obj then
@/lua/ge/extensions/campaign/photoSafari.lua
      if tableFindKey(M.photoSafarimissions, data.triggerName) then
        if not (scenetree.findObject(M.photoSafariData[data.triggerName].objectName)) then
          log('E', logTag, M.photoSafariData.objectName..' is not existing')
        M.closeToPhoto = true
        local sceneObject = scenetree.findObject(M.targetObj)
        local pos = vec3(sceneObject:getPosition())
  local vehicle = scenetree.findObjectById(be:getPlayerVehicleID(0))
  local camTriggerObj = scenetree.findObject('camtrig')
  local camTriggerPos = camTriggerObj:getPosition()
  local vehicle = scenetree.findObjectById(be:getPlayerVehicleID(0))
  local photoTrigger = scenetree.findObject(M.location)
  local vehicleDistance_To_Obj = (vehicle:getPosition() - photoTrigger:getPosition()):len()
  local vehicleDistance_To_Obj = (vehicle:getPosition() - photoTrigger:getPosition()):len()
  local sceneObject = scenetree.findObject(M.targetObj)
  local pos = vec3(sceneObject:getPosition())
@/lua/ge/extensions/editor/gen/network.lua
if U._PRD == 0 then
    groupEdit = scenetree.findObject('e_road')
    lo('??_______________________________________ nw_e_road:'..tostring(groupEdit))
    end
    groupEdit = scenetree.findObject('e_road')
    lo('= NETWORK:'..tostring(groupEdit))
    if groupEdit == nil then
            lo('?? if_SG:'..tostring(scenetree.findObject('SimGroup')))
        groupEdit = scenetree.findObject('SimGroup')
            lo('?? if_SG:'..tostring(scenetree.findObject('SimGroup')))
        groupEdit = scenetree.findObject('SimGroup')
        if not groupEdit then groupEdit = createObject('SimGroup') end
        groupEdit:registerObject('e_road')
        groupEdit = scenetree.findObject('e_road')
        lo('?? e_road:'..tostring(groupEdit))
--U.dump(tb:getObjectBox():getExtents(), '??********** for_TB:')
--local groupEdit = scenetree.findObject('edit')
@/lua/ge/client/postFx/fog.lua

local fogPassShader = scenetree.findObject("FogPassShader")
if not fogPassShader then

local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")

local fogPassStateBlock = scenetree.findObject("FogPassStateBlock")
if not fogPassStateBlock then

local fogPostFx = scenetree.findObject("FogPostFx")
if not fogPostFx then
underwaterFogPostFxCallbacks.onEnabled = function()
  local causticsFX = scenetree.findObject("CausticsPFX")
  if causticsFX then
underwaterFogPostFxCallbacks.onDisabled = function()
  local causticsFX = scenetree.findObject("CausticsPFX")
  if causticsFX then

local underwaterFogPassShader = scenetree.findObject("UnderwaterFogPassShader")
if not underwaterFogPassShader then

local underwaterFogPassStateBlock = scenetree.findObject("UnderwaterFogPassStateBlock")
if not underwaterFogPassStateBlock then

local underwaterFogPostFx = scenetree.findObject("UnderwaterFogPostFx")
if not underwaterFogPostFx then
@/lua/ge/extensions/editor/roadUtils.lua
    local matName = jsonData.roads[1].fields.Material
    local mat = scenetree.findObject(matName)
    if mat then
@/lua/ge/extensions/flowgraph/nodes/mission/UpdateDisplayDragRace.lua
  for i=1, 5 do
    local leftTimeDigit = scenetree.findObject("display_time_" .. i .. "_l")
    table.insert(self.leftTimeDigits, leftTimeDigit)

    local rightTimeDigit = scenetree.findObject("display_time_" .. i .. "_r")
    table.insert(self.rightTimeDigits, rightTimeDigit)

    local rightSpeedDigit = scenetree.findObject("display_speed_" .. i .. "_r")
    table.insert(self.rightSpeedDigits, rightSpeedDigit)

    local leftSpeedDigit = scenetree.findObject("display_speed_" .. i .. "_l")
    table.insert(self.leftSpeedDigits, leftSpeedDigit)
@/gameplay/missionTypes/scatterPickup/customNodes/scatterStuffInZonesNode.lua

  local iconRendererObj = scenetree.findObject(iconRendererName)
  if not iconRendererObj then
@/lua/ge/extensions/editor/terrainEditor.lua
  for _, name in ipairs(scenetree.findClassObjects("TerrainBlock")) do
    terrainBlockProxies[name] = {selected = false, id = scenetree.findObject(name):getID()}
  end
@/lua/ge/client/init.lua
  -- Startup the client with the Main menu...
  local onlyGui = scenetree.findObject("OnlyGui")
  local canvas = scenetree.findObject("Canvas")
  local onlyGui = scenetree.findObject("OnlyGui")
  local canvas = scenetree.findObject("Canvas")
  local cursor = scenetree.findObject("DefaultCursor")
  local canvas = scenetree.findObject("Canvas")
  local cursor = scenetree.findObject("DefaultCursor")
  if onlyGui and canvas and cursor then
  -- Otherwise go to the splash screen.
  local canvas = scenetree.findObject("Canvas")
  -- log('I','main_entry','scenetree.findObject("Canvas") = '..dumps(canvas))
  local canvas = scenetree.findObject("Canvas")
  -- log('I','main_entry','scenetree.findObject("Canvas") = '..dumps(canvas))
  if canvas then
  if canvas then
    local cursor = scenetree.findObject("DefaultCursor")
    if cursor then
    if cursor then
      -- log('I','main_entry','scenetree.findObject("DefaultCursor") = '..dumps(cursor))
      canvas:setCursor(cursor)
@/lua/ge/client/lighting/shadowMaps/init.lua

local blurDepthShader = scenetree.findObject("BlurDepthShader")
if not blurDepthShader then
@/lua/ge/extensions/editor/roadSpline.lua
                  -- Display the material texture as a thumbnail.
                  local mat = scenetree.findObject(layer.material or "")
                  if mat then
      for _, objName in ipairs(editor.selection.object) do
        local obj = scenetree.findObject(objName)
        if obj:getClassName() == "DecalRoad" then
@/lua/ge/extensions/editor/terrainMaterialsEditor.lua
  for k,v in ipairs(terrainMaterials) do
    local terrainMaterial = scenetree.findObject(v)
    if terrainMaterial then
          for k,v in ipairs(upgradeFileFormatMaterials.terrainMaterials) do
            local terrainMaterial = scenetree.findObject(v.id)
            if terrainMaterial then

          local textureSet = scenetree.findObject(name)
          if not textureSet then
          if im.CollapsingHeader1("Edit TerrainMaterialTextureSet Properties", im.TreeNodeFlags_DefaultOpen) then
            local obj = scenetree.findObject(editor_terrainEditor.getTerrainBlock():getField('materialTextureSet', 0))
            if obj then
@/lua/ge/extensions/util/trackBuilder/materialUtil.lua
  --if materialObjects.center[l] == nil or materialObjects.border[l] == nil then
    materialObjects.center[l] = scenetree.findObject("track_editor_" .. l .. '_center')
    materialObjects.border[l] = scenetree.findObject("track_editor_" .. l .. '_border')
    materialObjects.center[l] = scenetree.findObject("track_editor_" .. l .. '_center')
    materialObjects.border[l] = scenetree.findObject("track_editor_" .. l .. '_border')
    if not skipSet then
@/lua/ge/extensions/editor/gen/decal.lua

--    lo('= DECAL:'..tostring(veh)..':'..tostring(scenetree.findObject("Vegetation")))
if false then
    local groupDecal = scenetree.findObject('e_road')
    if true and groupDecal == nil then
        end
        groupDecal = scenetree.findObject('e_road')
    end

    local groupLines = scenetree.findObject('lines')
    if true and groupLines == nil then
        end
        groupLines = scenetree.findObject('lines')
    end
        lo('>> D.foldersUp:')
    groupDecal = scenetree.findObject('e_road')
    if true and groupDecal == nil then
        end
        groupDecal = scenetree.findObject('e_road')
        groupDecal.canSave = false

    groupLines = scenetree.findObject('lines')
    if true and groupLines == nil then
        end
        groupLines = scenetree.findObject('lines')
        groupLines.canSave = false
        lo('>>******************* D.inject:'..tostring(inreload)) --..tostring(iM))
    groupDecal = scenetree.findObject('e_road')
    foldersUp()
        end
        groupDecal = scenetree.findObject('e_road')
--                print('??^^^^^^ decal_E_ROAD_ADDED:')

    groupLines = scenetree.findObject('lines')
    if true and groupLines == nil then
        end
        groupLines = scenetree.findObject('lines')
        groupLines.canSave = false
--            lo('??^^^^^^^^^^^^^^^^^^^^^^^^^ DL:'..U._MODE)
    local obj = scenetree.findObject("Vegetation")
    if U._PRD==0 and U._MODE ~= 'conf' and obj then
--            veh:setPositionNoPhysicsReset(rayCast.pos)
--            scenetree.findObject("thePlayer"):setPosition(vec3(x, y, core_terrain.getTerrainHeight(vec3(x,y))))
--        elseif editor.keyModifiers.ctrl then -- and out.injunction then --not indrag and U._MODE ~= 'conf' then
@/lua/ge/extensions/editor/gen/test.lua
    -- clean bat
    local groupBat = scenetree.findObject('bat')
    if groupBat then
    -- forest
--    scenetree.findObject(forestName):delete()
--    local forest = worldEditorCppApi.createObject("Forest")
--    local forest =
    scenetree.findObject(forestName):delete()
    local forest = worldEditorCppApi.createObject("Forest")
    local forest = worldEditorCppApi.createObject("Forest")
--    forest = scenetree.findObject('theForest')
    forest:registerObject(forestName)
local function test()
    local groupBat = scenetree.findObject('bat')
        lo('?? test.test:'..tostring(groupBat))
			else
--					lo('?? for_module:'..tostring(scenetree.findObject(o)))
				scenetree.findObject(o):delete()
--					lo('?? for_module:'..tostring(scenetree.findObject(o)))
				scenetree.findObject(o):delete()
			end
	if inworld then
		scenetree.findObject("thePlayer"):setPosition(vec3(x, y, core_terrain.getTerrainHeight(vec3(x,y))))
		if true then return end
--		local levelMaterialNames = editor.getPreference("materialEditor.general.levelMaterialNames")
--			local matobj = scenetree.findObject('GroundGrid2')
--			lo('?? test_if_build:'..tableSize(adesc)..':'..tableSize(levelMaterialNames)..':'..tostring(matobj))
--				M.flipSide(am[1].faces, am[1].normals)
--				local id,om = M.meshUp(am, 'tst', scenetree.findObject('edit'))
--				om:setPosition(alod[1].pos)
--			M.flipSide(am[1].faces, am[1].normals)
			local id,om = M.meshUp(am, 'tst', scenetree.findObject('edit'))
				lo('?? for_OM:'..tostring(id))
				U.out.aset[1] = {set={vec3(0,0,0.1)}}
			local id,om = M.meshUp(am, 'tst', scenetree.findObject('edit'))
				lo('?? for_OM:'..tostring(id))
	if true then
		local obj = scenetree.findObject('dae_win_1')
		obj.hidden = false
		for _, nm in pairs(list) do
			if not scenetree.findObject(nm) then
				local om = createObject('TSStatic')

		local obj = scenetree.findObject('bat') --'lod_vertcol_test.dae')
--[[
				mat:registerObject('R_mat_'..t)
					lo('?? if_mat:'..tostring(scenetree.findObject('R_mat_'..t)))
			end
			end
		--        lo('?? ifmat:'..tostring(scenetree.findObject('R_512_green')))
@/lua/ge/extensions/freeroam/bigMapMode.lua
  if previousDOF then
    local DOFPostEffect = scenetree.findObject("DOFPostEffect")
    DOFPostEffect:enable()
  core_camera.setLookBack(0, false) -- Disable lookback before going into bigmap
  local canvas = scenetree.findObject("Canvas")
  if canvas then
  -- make the action map let through inputs, so the throttle cant get stuck on the vehicle
  local am = scenetree.findObject("BigMapActionMap")
  if am then am.trapHandledEvents = false end

  local DOFPostEffect = scenetree.findObject("DOFPostEffect")
  if DOFPostEffect then
@/lua/ge/extensions/util/decalRoadsEditor.lua
  for _, AIPathName in ipairs(scenetree.findClassObjects('AIPath')) do
    local o = scenetree.findObject(AIPathName)
    if o and o.drivability > 0 then
@/lua/ge/main.lua
      if not knownObjects[oName] then
        local obj = scenetree.findObject(oName)
        log('I', '', ' adding :  ' .. tostring(oName))
          if not knownObjects[oName] then
            local obj = scenetree.findObject(oName)
            log('I', '', ' adding :  ' .. tostring(oName))

  local mainEventManager = scenetree.findObject("MainEventManager")
  p:add("MainEventManager.find")
  if loadingLevel then
    local canvas = scenetree.findObject("Canvas")
    if canvas then

  -- local forest = scenetree.findObject("theForest")
  -- if not forest then
  for i,v in ipairs(objects_to_delete) do
    obj = scenetree.findObject(v)
    if obj then

  local found = scenetree.findObject('test_v2')
  if found then
  for i,v in ipairs(objects_to_delete) do
    local obj = scenetree.findObject(v)
    if obj then
function test_spawn_prefabv2()
  local prefab = scenetree.findObject('test_v2')
  if not prefab then
    load_test_prefabv2()
    prefab = scenetree.findObject('test_v2')
    if not prefab then
function test_spawn_prefabv2_massive(count)
  local prefab = scenetree.findObject('test_v2')
  if not prefab then
    load_test_prefabv2()
    prefab = scenetree.findObject('test_v2')
    if not prefab then
function test_unload_prefabv2()
  local prefab = scenetree.findObject('test_v2')
  if prefab then
@/gameplay/missions/gridmap_v2/collection/002-blenderbowl/script.lua
      -- Get ball return position, and field center position and radius
      local wall = scenetree.findObject("perimeterWall")
      fieldCenterPos:set(wall:getWorldBoxCenter())

      local reset = scenetree.findObject("ballReturn")
      ballResetPos:set(reset:getPosition())
@/gameplay/missionTypes/scatterPickup/customNodes/scatterPrefabSetupNode.lua

  local iconRendererObj = scenetree.findObject(iconRendererName)
  if iconRendererObj and self.mgr.scatterPickup then
@/lua/ge/extensions/util/trackBuilder/splineTrack.lua
  else
    --dump(scenetree.findObject("thePlayer"))
    --dump(scenetree.findObject("thePlayer"):getID())
    --dump(scenetree.findObject("thePlayer"))
    --dump(scenetree.findObject("thePlayer"):getID())
    --dump(getObjectByID(scenetree.findObject("thePlayer"):getID()))
    --dump(scenetree.findObject("thePlayer"):getID())
    --dump(getObjectByID(scenetree.findObject("thePlayer"):getID()))
    local id = scenetree.findObject("thePlayer"):getID()
    --dump(getObjectByID(scenetree.findObject("thePlayer"):getID()))
    local id = scenetree.findObject("thePlayer"):getID()
    vehicleSetPositionRotation(id, pos.x, pos.y, pos.z, rot.x, rot.y, rot.z, rot.w)
@/lua/ge/extensions/ui/liveryEditor.lua
local function toggleVehicleControls(enable)
  local commonActionMap = scenetree.findObject("VehicleCommonActionMap")
  if commonActionMap then

  local specificActionMap = scenetree.findObject("VehicleSpecificActionMap")
  if specificActionMap then
@/lua/ge/client/postFx/lightRay.lua

local lightRayOccludeShader = scenetree.findObject("LightRayOccludeShader")
if not lightRayOccludeShader then

local lightRayShader = scenetree.findObject("LightRayShader")
if not lightRayShader then

local lightRayStateBlock = scenetree.findObject("LightRayStateBlock")
if not lightRayStateBlock then
if not lightRayStateBlock then
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  lightRayStateBlock = createObject("GFXStateBlockData")
lightRayPostFXCallbacks.preProcess = function()
  local lightRayPostFX = scenetree.findObject("LightRayPostFX")
  if not lightRayPostFX then
lightRayPostFXCallbacks.setShaderConsts = function()
  local lightRayPostFX = scenetree.findObject("LightRayPostFX")
  if not lightRayPostFX then
  lightRayPostFX:setShaderConst("$brightScalar", TorqueScriptLua.getVar("$LightRayPostFX::brightScalar"))
  local pfx = lightRayPostFX:findObjectByInternalName("final")-- scenetree.findObject("final")
  pfx = Sim.upcast(pfx)

local lightRayPostFX = scenetree.findObject("LightRayPostFX")
if not lightRayPostFX then
@/lua/ge/extensions/core/camera.lua
    if vehicleName ~= lastVehicleName then
      local lastVehicle = lastVehicleName and scenetree.findObject(lastVehicleName) or nil
      local lastVehicleId = lastVehicle and lastVehicle:getId() or nil
  if trigger.triggerOverride then
    local overrideObj = scenetree.findObject(trigger.triggerOverride)
    if overrideObj then
    if type(trigger.cameraOnEnter) == 'string' and trigger.cameraOnEnter ~= "" then
      local cam = scenetree.findObject(trigger.cameraOnEnter)
      if cam.showApps ~= '1' then
  elseif trigger.event == 'enter' and type(trigger.cameraOnEnter) == 'string' and trigger.cameraOnEnter ~= "" then
    local cam = scenetree.findObject(trigger.cameraOnEnter)
    if cam then
@/lua/ge/extensions/gameplay/skidpadTest.lua
      local vehicle = getObjectByID(vehId)
      local spawnPoint = scenetree.findObject("skidpadSpawn")
      spawn.safeTeleport(vehicle, spawnPoint:getPosition(), quat(0,0,1,0) * spawnPoint:getRotation(), nil, nil, nil, true, false)
@/lua/common/jbeam/materials.lua
      --log('D', "material.init", "getSwitchableMaterial("..orgMat..")")
      if not scenetree.findObject(orgMat) then
        local mat = createObject("Material")
@/lua/ge/extensions/core/replay.lua
    if statestr == 'playback' then -- we are in playback now
      local o = scenetree.findObject("VehicleCommonActionMap")
      if o then o:setEnabled(false) end
      if o then o:setEnabled(false) end
      o = scenetree.findObject("VehicleSpecificActionMap")
      if o then o:setEnabled(false) end
      if o then o:setEnabled(false) end
      o = scenetree.findObject("ReplayPlaybackActionMap")
      if o then o:push() end
    else -- we are not in playback now (start of game, just exited playback, etc)
      local o = scenetree.findObject("ReplayPlaybackActionMap")
      if o then o:pop() end
      if o then o:pop() end
      o = scenetree.findObject("VehicleSpecificActionMap")
      if o then o:setEnabled(true) end
      if o then o:setEnabled(true) end
      o = scenetree.findObject("VehicleCommonActionMap")
      if o then o:setEnabled(true) end
@/lua/ge/extensions/scenario/scenariohelper.lua
local function getVehicleByName(name)
  return scenetree.findObject(name)
end
local function getDistanceBetweenSceneObjects(sceneObjectName1, sceneObjectName2)
  local sceneObject1 = scenetree.findObject(sceneObjectName1)
  local sceneObject2 = scenetree.findObject(sceneObjectName2)
  local sceneObject1 = scenetree.findObject(sceneObjectName1)
  local sceneObject2 = scenetree.findObject(sceneObjectName2)
  if sceneObject1 and sceneObject2 then
@/lua/ge/client/postFx/ssao.lua
    currentQuality = tostring(clamp(round(tonumber(quality)), 0, 2))
    local ssaoPostFx = scenetree.findObject("SSAOPostFx")
    if ssaoPostFx then
ssaoPostFxCallbacks.setShaderConsts = function()
  local ssaoPostFx = scenetree.findObject("SSAOPostFx")
  if not ssaoPostFx then

local ssaoPostFx = scenetree.findObject("SSAOPostFx")
if not ssaoPostFx then
-- SSAO mask texture used during lighting.
local ssaoVizPostFx = scenetree.findObject("SSAOVizPostFx")
if not ssaoVizPostFx then

local ssaoPowTableShader = scenetree.findObject("SSAOPowTableShader")
if not ssaoPowTableShader then

local ssaoPowTablePostFx = scenetree.findObject("SSAOPowTablePostFx")
if not ssaoPowTablePostFx then
@/lua/ge/extensions/flowgraph/nodes/mission/clearLightsDragRace.lua
    stageLights = {
      prestageLightL  = {obj = scenetree.findObject("Prestagelight_l"), anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      prestageLightL  = {obj = scenetree.findObject("Prestagelight_l"), anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      stageLightR     = {obj = scenetree.findObject("Stagelight_r"),    anim = "prestage"}
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      stageLightR     = {obj = scenetree.findObject("Stagelight_r"),    anim = "prestage"}
    },
    countDownLights = {
      amberLight1R    = {obj = scenetree.findObject("Amberlight1_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight1R    = {obj = scenetree.findObject("Amberlight1_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      redLightR       = {obj = scenetree.findObject("Redlight_R"),    anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      redLightR       = {obj = scenetree.findObject("Redlight_R"),    anim = "tree"},
      redLightL       = {obj = scenetree.findObject("Redlight_L"),    anim = "tree"}
      redLightR       = {obj = scenetree.findObject("Redlight_R"),    anim = "tree"},
      redLightL       = {obj = scenetree.findObject("Redlight_L"),    anim = "tree"}
    }
  for i=1, 5 do
    local leftTimeDigit = scenetree.findObject("display_time_" .. i .. "_l")
    leftTimeDigit:setHidden(true)

    local rightTimeDigit = scenetree.findObject("display_time_" .. i .. "_r")
    rightTimeDigit:setHidden(true)

    local rightSpeedDigit = scenetree.findObject("display_speed_" .. i .. "_r")
    rightSpeedDigit:setHidden(true)

    local leftSpeedDigit = scenetree.findObject("display_speed_" .. i .. "_l")
    leftSpeedDigit:setHidden(true)
@/lua/ge/ge_utils.lua

-- allows users to find Objects via name: scenetree.findObject('myname')
scenetree.findObject = function(objectName)
scenetree.findObject = function(objectName)
  return Sim.findObject(objectName)
end
  -- TODO: cache the object!
  return getmetatable(class_table).findObject(memberName)
end
  -- manually find the object, working around scenetree
  local obj = scenetree.findObject('sunsky')
  --dump(obj)

  local group = scenetree.findObject(groupName)
  if not group then
  for k, name in ipairs(audioChannels) do
    local channel = scenetree.findObject(name)
    if channel then
  if not o or #o == 0 then return nil end
  o = scenetree.findObject(o[1])
  if not o then return nil end
  for _, v in pairs(o) do
    table.insert(res, scenetree.findObject(v))
  end

  local found = scenetree.findObject(prefabTemplateName)
  if found then
      local prefabTemplateName = prefabFilenameToTemplateName(objFileName)
      local prefab = scenetree.findObject(prefabTemplateName)
      if not prefab then
        loadPrefabv2Template(objFileName)
        prefab = scenetree.findObject(prefabTemplateName)
        if not prefab then

  obj2 = Sim.findObject('hey')
  obj2:findObjectById(3)
    for vehicleName,v in pairs(data) do
      local vehicle = scenetree.findObject(vehicleName)
      if vehicle then
  for _, objName in ipairs(objects) do
    local object = scenetree.findObject(objName)
    local id = object and object:getId() or 0
@/lua/ge/extensions/tech/capturePlayer.lua
  if request.vid then
    local veh = scenetree.findObject(request.vid)
    captureState.sensors[request.name].vid = veh:getID()
  if request.vid then
    local veh = scenetree.findObject(request.vid)
    captureState.sensors[request.name].vid = veh:getID()
  if request.vid then
    local veh = scenetree.findObject(request.vid)
    captureState.sensors[request.name].vid = veh:getID()
ResponseSync.StartVehicleConnection = function(response)
  local veh = scenetree.findObject(response.vid)
  captureState.lastVid = veh:getID()
@/lua/ge/extensions/editor/bulkRename.lua
      -- otherwise, search the whole tree
      local obj = scenetree.findObject(entry.new)
      if obj then
@/lua/ge/extensions/gameplay/markers/crawlMarker.lua
  self:clearObjects()
  iconRendererObj = scenetree.findObject(iconRendererName)
  if not iconRendererObj then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj then
@/lua/ge/screenshot.lua

    local sunsky = scenetree.findObject("sunsky")
    if sunsky then

    local sunsky = scenetree.findObject("sunsky")
    if sunsky then
@/lua/ge/extensions/core/dynamicProps.lua
function DynamicProps:findForestItems()
  forest = scenetree.findObject("theForest")
  self.forestQt = quadtree.newQuadtree()
@/lua/ge/extensions/editor/resourceChecker/resourceUtil.lua
  for _, objName in ipairs(objs) do
    local o = scenetree.findObject(objName)
    if o and o.getFileName and o:getFileName() == fileName then
    job.yield()
    local m = scenetree.findObject(v)
    if not m then log("E", "", "TSStatic object broken "..dumps(v))
    job.yield()
    local m = scenetree.findObject(v)
    if not m then log("E", "", "ForestItem object broken "..dumps(v))
    job.yield()
    local m = scenetree.findObject(v)
    if not m then log("E", "", "TerrainBlock object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "ForestItem object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "TSStatic object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "TerrainBlock object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "GroundPlane object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "GroundCover object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "DecalRoad object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "MeshRoad object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "DecalData object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(k)
      if m and m:getFileName() then
      job.yield()
      local m = scenetree.findObject(k)
      if m and m:getFileName() then
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "Prefab object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "ForestItem object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "TSStatic object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "TerrainBlock object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "GroundPlane object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "GroundCover object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "DecalRoad object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "MeshRoad object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "DecalData object broken "..dumps(v))
      job.yield()
      local mat = scenetree.findObject(k)
      local matSizeCheck = {}
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "Prefab object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "TSStatic object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "TSStatic object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "ForestItem object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "GroundCover object broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "Material broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "TerrainMaterial broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "WaterPlane broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "WaterBlock broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "River broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "CloudLayer broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "ScatterSky broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if not m then log("E", "", "Cubemap broken "..dumps(v))
      job.yield()
      local m = scenetree.findObject(v)
      if m and m:getField('filename',0) and FS:fileSize(m:getField('filename',0)) > 0 then
      job.yield()
      local o = scenetree.findObject(name)
      if o and o.getModelFile then
        job.yield()
        local o = scenetree.findObject(name)
        if o then
      job.yield()
      local o = scenetree.findObject(name)
      if o and o.getMaterialNames then
      job.yield()
      local o = scenetree.findObject(name)
      if o and o.getMaterials then
      job.yield()
      local o = scenetree.findObject(name)
      if o then
      job.yield()
      local mat = scenetree.findObject(matName)
      if mat and mat.___type == "class" then
@/lua/ge/client/postFx/fxaa.lua
  -- log('I', 'fxaaPostEffect', 'onEnabled called for fxaaPostEffect')
  local smaa_postfx = scenetree.findObject("SMAA_PostEffect")
  if smaa_postfx then

local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
local fxaaShaderData = scenetree.findObject("FXAA_PostEffect")
local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
local fxaaShaderData = scenetree.findObject("FXAA_PostEffect")
if not fxaaShaderData then
@/lua/ge/setSpawnpoint.lua
    if v.objectname == dataLevel.defaultSpawnPointName then
      local SP=scenetree.findObject(dataLevel.defaultSpawnPointName)
      if SP then
@/lua/ge/extensions/gameplay/markers/missionMarker.lua
  self:clearObjects()
  iconRendererObj = scenetree.findObject(iconRendererName)
  if not iconRendererObj then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj then
@/lua/ge/client/postFx/maskedScreenBlur.lua
-----------------------------------------------
local screenBlurFX_YShader = scenetree.findObject("ScreenBlurFX_YShader")
if not screenBlurFX_YShader then

local screenBlurFX_XShader = scenetree.findObject("ScreenBlurFX_XShader")
if not screenBlurFX_XShader then

local screenBlurFX_stateBlock = scenetree.findObject("ScreenBlurFX_stateBlock")
if not screenBlurFX_stateBlock then

local simpleBlendShader = scenetree.findObject("SimpleBlendShader")
if not simpleBlendShader then

local simpleBlendShaderStateBlock = scenetree.findObject("SimpleBlendShaderStateBlock")
if not simpleBlendShaderStateBlock then

local screenBlurFX = scenetree.findObject("ScreenBlurFX")
if not screenBlurFX then
@/lua/ge/extensions/gameplay/markers/driftLineMarker.lua
  for _, name in ipairs(self.cluster.markerObjects or {}) do
    local obj = scenetree.findObject(name)
    if obj then
  for _, name in ipairs(self.cluster.markerObjects or {}) do
    local obj = scenetree.findObject(name)
    if obj then
@/lua/ge/extensions/editor/gen/exp_solidflex.lua
        lo('>>________________________________________********************** exp_solidflex.up:'..lbl)
    local obj = scenetree.findObject("spawn_default")
    if obj then obj.hidden = true end
    if obj then obj.hidden = true end
    obj = scenetree.findObject("thePlayer")
    if obj then obj:delete() end
    amat[#amat+1] = M.matUp(1,{0.3,0.4,0.8})
    scenetree.findObject('m_greybox_base_bat').doubleSided = true
--        lo('?? M1:'..tostring(nm))

    groupEdit = scenetree.findObject('edit')
    if not groupEdit then
--            U.dump(m,'?? for_M:')
    local id,om = M.meshUp({m},'tst', scenetree.findObject('edit'))
        lo('?? init:'..tostring(id)..':'..tostring(om)..':'..tostring(scenetree.findObject('edit')))
    local id,om = M.meshUp({m},'tst', scenetree.findObject('edit'))
        lo('?? init:'..tostring(id)..':'..tostring(om)..':'..tostring(scenetree.findObject('edit')))
    body = om
--            U.dump(m,'?? for_M:')
        local id,om = M.meshUp({m},'tst', scenetree.findObject('edit'))
            lo('?? if_MESH:'..tostring(id))
@/lua/ge/client/lighting/advanced/lightViz.lua
  if curVisualizeModeName ~= newVisualizeModeName then
    local curVisualizeMode = curVisualizeModeName and scenetree.findObject(curVisualizeModeName)
    if curVisualizeMode then

local al_DepthVisualizeState = scenetree.findObject("AL_DepthVisualizeState")
if not al_DepthVisualizeState then

local al_DefaultVisualizeState = scenetree.findObject("AL_DefaultVisualizeState")
if not al_DefaultVisualizeState then

local al_DepthVisualizeShader = scenetree.findObject("AL_DepthVisualizeShader")
if not al_DepthVisualizeShader then

local al_DepthVisualize = scenetree.findObject("AL_DepthVisualize")
if not al_DepthVisualize then

local al_NormalsVisualizeShader = scenetree.findObject("AL_NormalsVisualizeShader")
if not al_NormalsVisualizeShader then

local al_NormalsVisualize = scenetree.findObject("AL_NormalsVisualize")
if not al_NormalsVisualize then

local al_LightColorVisualizeShader = scenetree.findObject("AL_LightColorVisualizeShader")
if not al_LightColorVisualizeShader then

local al_LightColorVisualize = scenetree.findObject("AL_LightColorVisualize")
if not al_LightColorVisualize then

local al_LightSpecularVisualizeShader = scenetree.findObject("AL_LightSpecularVisualizeShader")
if not al_LightSpecularVisualizeShader then

local al_LightSpecularVisualize = scenetree.findObject("AL_LightSpecularVisualize")
if not al_LightSpecularVisualize then

local annotationVisualizeShader = scenetree.findObject("AnnotationVisualizeShader")
if not annotationVisualizeShader then

local annotationVisualize = scenetree.findObject("AnnotationVisualize")
if not annotationVisualize then
  -- log('I','lightViz', 'toggleLightVisualizer called: name = '..tostring(objName)..' enable = '..tostring(enable)..'  var = '..tostring(tsVariable))
  local vizualiser = scenetree.findObject(objName)
  if not vizualiser then
@/lua/ge/client/postFx/dof.lua
---------------------------------------------------------------------------
local pfxDefaultDOFStateBlock = scenetree.findObject("PFX_DefaultDOFStateBlock")
if not pfxDefaultDOFStateBlock then

local pfxDOFCalcCoCStateBlock = scenetree.findObject("PFX_DOFCalcCoCStateBlock")
if not pfxDOFCalcCoCStateBlock then

local pfxDOFDownSampleStateBlock = scenetree.findObject("PFX_DOFDownSampleStateBlock")
if not pfxDOFDownSampleStateBlock then

local pfxDOFBlurStateBlock = scenetree.findObject("PFX_DOFBlurStateBlock")
if not pfxDOFBlurStateBlock then

local pfxDOFFinalStateBlock = scenetree.findObject("PFX_DOFFinalStateBlock")
if not pfxDOFFinalStateBlock then

local pfxDOFDownSampleShader = scenetree.findObject("PFX_DOFDownSampleShader")
if not pfxDOFDownSampleShader then

local pfxDOFBlurYShader = scenetree.findObject("PFX_DOFBlurYShader")
if not pfxDOFBlurYShader then

local pfxDOFBlurXShader = scenetree.findObject("PFX_DOFBlurXShader")
if not pfxDOFBlurXShader then

local pfxDOFCalcCoCShader = scenetree.findObject("PFX_DOFCalcCoCShader")
if not pfxDOFCalcCoCShader then

local pfxDOFSmallBlurShader = scenetree.findObject("PFX_DOFSmallBlurShader")
if not pfxDOFSmallBlurShader then

local pfxDOFFinalShader = scenetree.findObject("PFX_DOFFinalShader")
if not pfxDOFFinalShader then
  -- change this value.
  local dofPostEffect = scenetree.findObject("DOFPostEffect")
  if not dofPostEffect then
dOFPostEffectCallbacks.setShaderConsts = function()
  local dofPostEffect = scenetree.findObject("DOFPostEffect")
  if not dofPostEffect or not dofPostEffect.focalDist then
  -- Exposed the variables to the shader
  local dofFinalPFX = scenetree.findObject("DOFFinalPFX")
  if dofFinalPFX then

local dofPostEffect = scenetree.findObject("DOFPostEffect")
if not dofPostEffect then
M.updateDOFSettings = function()
  local dofPostEffect = scenetree.findObject("DOFPostEffect")
  if not dofPostEffect then
@/lua/ge/client/objectsRequiredForStartup.lua
-- GuiSolidDefaultProfile
local guiSolidDefaultProfile = scenetree.findObject("GuiSolidDefaultProfile")
if not guiSolidDefaultProfile then

local guiTransparentProfile = scenetree.findObject("GuiTransparentProfile")
if not guiTransparentProfile then

local guiGroupBorderProfile = scenetree.findObject("GuiGroupBorderProfile")
if not guiGroupBorderProfile then

local guiTabBorderProfile = scenetree.findObject("GuiTabBorderProfile")
if not guiTabBorderProfile then
@/lua/ge/extensions/util/maptiles.lua

  local sunsky = scenetree.findObject("sunsky")
  if sunsky then

  local sunsky = scenetree.findObject("sunsky")
  if sunsky then
  -- Get terrain info
  local tb = scenetree.findObject(scenetree.findClassObjects('TerrainBlock')[1])
  local terrainSize = tb:getWorldBlockSize()
@/lua/ge/extensions/statistics/statistics.lua
    if instance.source then
      vehicle = scenetree.findObject(instance.source)
    else

    local vehicle = scenetree.findObject(vehicleName)
    if vehicle then
      if instance.source then
        local sourceVehicle = scenetree.findObject(instance.source)
        if sourceVehicle then
        if instance.source then
          vehicle = scenetree.findObject(instance.source)
        else
        if instance.source then
          vehicle = scenetree.findObject(instance.source)
        else
        if instance.source then
          local vehicle = scenetree.findObject(instance.source)
          if vehicle then
        if instance.source then
          vehicle = scenetree.findObject(instance.source)
        else
        if instance.source then
          vehicle = scenetree.findObject(instance.source)
        else
@/lua/ge/extensions/editor/api/dataBlock.lua
  if copyFrom and copyFrom ~= "" then
    local copiedDataBlock = scenetree.findObject(copyFrom)
    if copiedDataBlock then

  local dataBlockGroup = scenetree.findObject("dataBlockGroup")
@/lua/ge/extensions/core/levels.lua
    --local spawnPoint = setSpawnpoint.loadDefaultSpawnpoint()
    --spawnPoint = scenetree.findObject(spawnPoint)
    if spawnPoint then
  for _, name in ipairs(scenetree.findClassObjects('DecalRoad')) do
    local road = scenetree.findObject(name)
    if road then
local function getSpawnPointPosRot(poi, veh)
  local spawnPoint = scenetree.findObject(poi.data.objectname)
  if spawnPoint then
      if not career_career.isActive() or career_modules_spawnPoints.isSpawnPointDiscovered(levelInfo.levelName, spawnPoint.objectname) then
        local obj = scenetree.findObject(spawnPoint.objectname)
        if obj then
@/lua/ge/extensions/editor/assetBrowser.lua
          mat.type = 'material'
          mat.cobj = scenetree.findObject(matName)
          mat.selected = false
@/lua/ge/extensions/util/terrainGenerator.lua

    if scenetree.findObject(name) then -- delete old TerrainMaterialTextureSet; not sure if this causes a crash
      scenetree.findObject(name):delete()
    if scenetree.findObject(name) then -- delete old TerrainMaterialTextureSet; not sure if this causes a crash
      scenetree.findObject(name):delete()
    end

    local textureSet = scenetree.findObject(name)
    if not textureSet then
@/lua/ge/extensions/tech/techCore.lua
    if spawnPending ~= nil then
      local obj = scenetree.findObject(spawnPending)
      log('I', logTag, 'Vehicle spawned: ' .. tostring(vID))
  local vID = request['vehicle']
  local veh = scenetree.findObject(vID)
  local resp = {type = 'Teleported', success = false}
M.handleTeleportScenarioObject = function(request)
  local sobj = scenetree.findObject(request['id'])
  if request['rot'] ~= nil then
  command = 'extensions.load("tech/techCore")'
  veh = scenetree.findObject(vid)
  veh:queueLuaCommand(command)

  local alreadyExists = scenetree.findObject(request['name'])
  if alreadyExists and not replace then
      local cur = getPlayerVehicle(0)
      veh = scenetree.findObject(replaceVid)
      if not veh then
  local name = request['vid']
  local veh = scenetree.findObject(name)
  if veh ~= nil then
  for idx, roadName in ipairs(roads) do
    local road = scenetree.findObject(roadName)
    local roadID = road:getID()
  for idx, roadName in ipairs(roads) do
    local road = scenetree.findObject(roadName)
    local roadID = road:getID()
  local response = {type = 'DecalRoadEdges'}
  local road = scenetree.findObject(roadID)
  local edges = {}
  if request['vid'] ~= 0 then
    vid = scenetree.findObject(request['vid']):getID();
  end
  if request['vid'] ~= 0 then
    vid = scenetree.findObject(request['vid']):getID();
  end
  if request['vid'] ~= 0 then
    vid = scenetree.findObject(request['vid']):getID();
  end
  if request['vid'] ~= 0 then
    vid = scenetree.findObject(request['vid']):getID();
  end
  local name = request['name']
  local vid = scenetree.findObject(request['vid']):getID()
  local name = request['name']
  local vid = scenetree.findObject(request['vid']):getID()
  local name = request['name']
  local vid = scenetree.findObject(request['vid']):getID()
  local name = request['name']
  local vid = scenetree.findObject(request['vid']):getID()
  local name = request['name']
  local vid = scenetree.findObject(request['vid']):getID()
  local name = request['name']
  local vid = scenetree.findObject(request['vid']):getID()
  local name = request['name']
  local vid = scenetree.findObject(request['vid']):getID()
M.handleIsTimeEvolutionComplete = function(request)
  local vid = scenetree.findObject(request['vid']):getID()
  local data = extensions.tech_sensors.isTimeEvolutionComplete(vid)
  local vID = request['vid']
  local vehicle = scenetree.findObject(vID)
  be:enterVehicle(0, vehicle)
M.handleAnnotateParts = function(request)
  local vehicle = scenetree.findObject(request['vid'])
  tech_partAnnotations.annotateParts(vehicle:getID())
M.handleRevertAnnotations = function(request)
  local vehicle = scenetree.findObject(request['vid'])
  tech_partAnnotations.revertAnnotations(vehicle:getID())
M.handleGetPartAnnotations = function(request)
  local vehicle = scenetree.findObject(request['vid'])
  local colors = tech_partAnnotations.getPartAnnotations(vehicle:getID())
  for idx, object in ipairs(objects) do
    object = scenetree.findObject(object)
  local name = request['name']
  local obj = scenetree.findObject(name)
  if obj == nil then
M.handleGetBBoxCorners = function(request)
  local veh = scenetree.findObject(request['vid'])
  local resp = {type = 'BBoxCorners'}
  for idx, participant in ipairs(participants) do
    local veh = scenetree.findObject(participant)
M.handleGetSceneTree = function(request)
  local rootGrp = Sim.upcast(Sim.findObject('MissionGroup'))
  local tree = getSceneTreeNode(rootGrp)
M.handleSyncScene = function(request)
  local rootGrp = Sim.upcast(Sim.findObject('MissionGroup'))
  local tree = getSceneTreeNodeFull(rootGrp)
  local vid = request['vid']
  local veh = scenetree.findObject(vid)
  local cur = getPlayerVehicle(0)
  local vid = request['vid']
  local veh = scenetree.findObject(vid)
  local cur = getPlayerVehicle(0):getID()
  local vid = request['vid']
  local veh = scenetree.findObject(vid)
  local cur = getPlayerVehicle(0)

  local veh = scenetree.findObject(vid)
  local id = veh:getID()
  local vid = request['vid']
  local veh = scenetree.findObject(vid)
  -- Serialize & deserialize to get rid of data MessagePack can't serialize
    if string.find(objName, "procMesh") and not string.find(objName, ".json") then
      scenetree.findObject(objName):setName(filename..'-'..objName)
    end
  end
  local veh = scenetree.findObject(request['vid'])
  if not veh then
  local filepath, vid = request.filepath, request.vid
  local veh = scenetree.findObject(vid)
  if not veh then
  if request['vid'] ~= 0 then
    vid = scenetree.findObject(request['vid']):getID();
  end
@/lua/ge/extensions/ui/apps/minimap/minimap.lua
  -- setup imgui window position and size
  local canvasObject = scenetree.findObject("Canvas")
  local canvasPosX, canvasPosY = canvasObject:clientToScreenXY(point00)
@/lua/ge/client/postFx/chromaticLens.lua

local pfxDefaultChromaticLensStateBlock = scenetree.findObject("PFX_DefaultChromaticLensStateBlock")
if not pfxDefaultChromaticLensStateBlock then

local pfxChromaticLensShader = scenetree.findObject("PFX_ChromaticLensShader")
if not pfxChromaticLensShader then
  log('I','postfx','Calling setShaderConsts from chromaticLensPostFX')
  local chromaticLensPostFX = scenetree.findObject("ChromaticLensPostFX")
  if chromaticLensPostFX then

local chromaticLensPostFX = scenetree.findObject("ChromaticLensPostFX")
if not chromaticLensPostFX then
@/lua/ge/extensions/gameplay/speedTraps.lua
          -- TODO maybe build a cache with ids if findObject is too slow
          local lightObj = scenetree.findObject(data.speedTrapLightName)
          if isRedLightCamera then
@/lua/ge/extensions/editor/cosimulationSignalEditor.lua
      core_camera.setByName(0, "orbit", false)
      be:enterVehicle(0, scenetree.findObject(vehicle.vid))
          core_camera.setByName(0, "orbit", false)
          be:enterVehicle(0, scenetree.findObject(veh.vid))
          if i ~= selectedVehicleIdx and not isExecuting then
@/lua/ge/extensions/core/environment.lua
  if objNames and not tableIsEmpty(objNames) then
    local obj = scenetree.findObject(objNames[1])
    if obj then
@/lua/ge/extensions/editor/gen/mesh.lua
	nm = 'R_mat_'..nm
	local cmat = scenetree.findObject(nm)
--		lo('?? matUp:'..cs..':'..tostring(nm)..':'..tostring(cmat))
--	editor.setMaterialProperty(mat, 'translucentBlendOp', 0, 'Sub')
--		lo('?? if_mat:'..tostring(scenetree.findObject(nm))..':'..mat:getField("translucentBlendOp", 0))
--	for t,c in pairs({orange='1 0.5 0 1', green='0 1 0 1', blue='0 0 1 1',yellow='1 1 0 1'}) do
		end
		if not m.material or not scenetree.findObject(m.material) then
				lo('!! valid5:')
	local mnm = 'o_'..nm..'_'..cid
	local otmp = scenetree.findObject(mnm)
	if otmp then
@/lua/ge/extensions/editor/shapeEditor.lua
local function _getMaterialObj(matName)
  local mat = scenetree.findObject(matName)
  if not mat then
@/lua/ge/extensions/editor/meshSpline/import.lua
      if entry.name then
        local obj = scenetree.findObject(entry.name)
        if obj and obj:getClassName() == "TSStatic" then
  for _, meshName in pairs(scenetree.findClassObjects("TSStatic")) do
    local obj = scenetree.findObject(meshName)
    if obj then
@/lua/ge/extensions/editor/levelValidator.lua
  for _, name in ipairs(scenetree.getAllObjects()) do
    local object = scenetree.findObject(name)
    if object then
  if terrains[1] then
    local terrain = scenetree.findObject(terrains[1])
    terrainMinExtents = terrain:getWorldBox().minExtents
@/lua/ge/extensions/freeroam/facilities.lua
  for _, pair in ipairs(facility.doors or {}) do
    local obj = scenetree.findObject(pair[1])
    if obj then
  for _, pair in ipairs(facility.doors or {}) do
    local obj = scenetree.findObject(pair[1])
    if obj then
  for _, pair in ipairs(f.doors or {}) do
    local obj = scenetree.findObject(pair[1])
    if obj then
  for _, pair in ipairs(f.doors or {}) do
    local obj = scenetree.findObject(pair[1])
    if obj then
@/lua/ge/client/canvas.lua

  local canvas = scenetree.findObject("Canvas")
  if not canvas then
  lockMouse(false)
  local canvas = scenetree.findObject("Canvas")
  if canvas then
  lockMouse(true)
  local canvas = scenetree.findObject("Canvas")
  if canvas then
@/lua/ge/extensions/editor/gen/exp_meshexplorer.lua
    if true then
        local po = scenetree.findObject("thePlayer")
        po.hidden = false
            if M.valid(am) then
                local id,om = M.meshUp(am,'tst', scenetree.findObject('edit'))
                        om:setPosition(vec3(3,0,5))
        if M.valid(am) then
            local id,om = M.meshUp(am,'tst', scenetree.findObject('edit'))
                    om:setPosition(vec3(3,0,5))

        local obj = scenetree.findObject("thePlayer") --editor.getNodes(scenetree.findObject("thePlayer"))
        if obj then

        local obj = scenetree.findObject("thePlayer") --editor.getNodes(scenetree.findObject("thePlayer"))
        if obj then
            if M.valid(am) then
                local id,om = M.meshUp(am,'tst', scenetree.findObject('edit'))
                        om:setPosition(vec3(0,0,5))
            if false and M.valid(am) then
                local id,om = M.meshUp(am,'tst', scenetree.findObject('edit'))
                        om:setPosition(vec3(0,0,2))
--        if true then return end
    local obj = scenetree.findObject("spawn_default")
    if obj then obj.hidden = true end

    groupEdit = scenetree.findObject('edit')
    if not groupEdit then
    end
    local po = scenetree.findObject("thePlayer")
    if po then po.hidden = false end
		for _, obj in ipairs(objects) do
--				if true or U._PRD == 0 then lo('?? for_mat:'..tostring(obj.name)..':'..tostring(scenetree.findObject(obj.name))) end --..tostring(obj.doubleSided))
			obj.doubleSided = true
			for _,nm in pairs(wrCommon) do
				local mo = scenetree.findObject(nm)
--                    lo('?? for_roof_COM:'..tostring(nm)..':'..tostring(mo))

    groupEdit = scenetree.findObject('edit')
    if not groupEdit then
            end
--                    local po = scenetree.findObject("thePlayer")
--                    lo('?? if_PO:'..tostring(po.id)..':'..tostring(po:getId()))
        cmat = val+1
        local omat = scenetree.findObject(amat[cmat])
        omat.doubleSided = true
--                        end)
                        local id,om = M.meshUp(am,'tst', scenetree.findObject('edit'))
                        om:setPosition(vec3(s,0,h))
        if M.valid(am) then
            local id,om = M.meshUp(am,'tst', scenetree.findObject('edit'))
--            om:setPosition(vec3(-0,0,0.35))
        if M.valid(am) then
            local id,om = M.meshUp(am,'tst', scenetree.findObject('edit'))
            om:setPosition(vec3(-0,0,0.5))

        local po = scenetree.findObject("thePlayer")
            lo('?? file_up:'..fsnode.path..':'..val..':'..tostring(po))
        local p = fsnode.path..'/'..val
        local om = scenetree.findObject(val)
        if not om then
        if not om then
            scenetree.findObject('edit'):deleteAllObjects()
            om = createObject('TSStatic')
            om:registerObject(val) --'tmp_'..tostring(os.clock()))
            scenetree.findObject('edit'):add(om.obj)
--            local box = om:getWorldBox()
                local amn = om:getMaterialNames()
--                lo('?? mat1:'..tostring(scenetree.findObject(amn[1]).obj))
                dump(amn, '?? mat_LIST:')
            end
            local id,om = M.meshUp(am,'tst', scenetree.findObject('edit'))
                    om:setPosition(vec3(0,0,5))
                    end
--                    local po = scenetree.findObject("thePlayer")
--                    lo('?? if_PO:'..tostring(po.id)..':'..tostring(po:getId()))
@/gameplay/missionTypes/busMode/constructor.lua
      end
      table.insert(ret, scenetree.findObject(task):getPosition())
    end
@/lua/ge/extensions/editor/roadRiverCacheHandler.lua
    for _, name in pairs(group:getObjects()) do
      local object = scenetree.findObject(name)
      if object and object:getClassName() == "DecalRoad" then
@/lua/ge/client/lighting/advanced/shaders.lua
-- Vector Light State
local al_VectorLightState = scenetree.findObject("AL_VectorLightState")
if not al_VectorLightState then
-- Vector Light Material
local al_VectorLightShader = scenetree.findObject("AL_VectorLightShader")
if not al_VectorLightShader then

local al_VectorLightMaterial = scenetree.findObject("AL_VectorLightMaterial")
if not al_VectorLightMaterial then
-- Convex-geometry light states
local al_ConvexLightState = scenetree.findObject("AL_ConvexLightState")
if not al_ConvexLightState then
-- Point Light Material
local al_PointLightShader = scenetree.findObject("AL_PointLightShader")
if not al_PointLightShader then

local al_PointLightMaterial = scenetree.findObject("AL_PointLightMaterial")
if not al_PointLightMaterial then
-- Spot Light Material
local al_SpotLightShader = scenetree.findObject("AL_SpotLightShader")
  if not al_SpotLightShader then

local al_SpotLightMaterial = scenetree.findObject("AL_SpotLightMaterial")
if not al_SpotLightMaterial then
-- materials for objects that do not have materials.
local al_DefaultPrePassMaterial = scenetree.findObject("AL_DefaultPrePassMaterial")
if not al_DefaultPrePassMaterial then
-- materials for objects that do not have materials.
local al_DefaultShadowMaterial = scenetree.findObject("AL_DefaultShadowMaterial")
if not al_DefaultShadowMaterial then
-- Particle System Point Light Material
local al_ParticlePointLightShader = scenetree.findObject("AL_ParticlePointLightShader")
if not al_ParticlePointLightShader then

local al_ParticlePointLightMaterial = scenetree.findObject("AL_ParticlePointLightMaterial")
if not al_ParticlePointLightMaterial then
@/lua/ge/extensions/editor/main.lua
  for _, mapName in ipairs(vehicleActionMaps) do
    local map = scenetree.findObject(mapName)
    if map then
    if mapsEnabledStateBefore[mapName] ~= nil then
      local map = scenetree.findObject(mapName)
      if map then
    -- let the key modifiers pass through, for mouse and other keys
    local amap = scenetree.findObject("EditorKeyModsActionMap")
    if amap then amap.trapHandledEvents = false end
    -- TODO what to do here when we delete the free cam?
    local freeCam = scenetree.findObject("freeCamera")
    if freeCam then
@/lua/ge/extensions/editor/forestView.lua
--     -- --
--     local forest = scenetree.findObject("theForest")
--     if not forest then

 local forest = scenetree.findObject("theForest")
  if not forest then
    local name = data:getName()
    local obj = scenetree.findObject(name)
    if obj then
@/lua/ge/extensions/career/modules/spawnPoints.lua
      if not M.isSpawnPointDiscovered(currentLevel, spawnPoint.objectname) then
        local obj = scenetree.findObject(spawnPoint.objectname)
        if obj then
@/lua/ge/client/lighting/basic/init.lua

local bl_ProjectedShadowSBData = scenetree.findObject("BL_ProjectedShadowSBData")
if not bl_ProjectedShadowSBData then

local bl_ProjectedShadowShaderData = scenetree.findObject("BL_ProjectedShadowShaderData")
if not bl_ProjectedShadowShaderData then

local bl_ProjectedShadowMaterial = scenetree.findObject("BL_ProjectedShadowMaterial")
if not bl_ProjectedShadowMaterial then
    -- log('I','BLM','Basic Lighting onActivate called...')
    local al_formatToken = scenetree.findObject("AL_FormatToken")
    if al_formatToken then
    -- end up in the MissionCleanup instant group.
    local rootGroup = scenetree.findObject("RootGroup")
    rootGroup:add(renderPassManager)
    -- log('I','BLM','Basic Lighting onDeactivate called...')
    local al_formatToken = scenetree.findObject("AL_FormatToken")
    if al_formatToken then
    end
    local renderPassManager = scenetree.findObject("BL_ProjectedShadowRPM")
    renderPassManager:delete()
@/lua/ge/client/lighting/advanced/init.lua
    -- with MSAA back buffers and for HDR rendering.
    local al_formatToken = scenetree.findObject("AL_FormatToken")
    if al_formatToken then
    -- Disable the offscreen render target.
    local al_formatToken = scenetree.findObject("AL_FormatToken")
    if al_formatToken then
@/lua/ge/extensions/ui/liveryEditor/controls.lua
local toggleActionMap = function(actionMap, enable)
  local o = scenetree.findObject(actionMap .. "ActionMap")
  if o then
M.toggleEditActionMaps = function(enable)
  local o = scenetree.findObject("liveryEditorActionMap")
  if o then
M.enableVehicleControls = function(enable)
  local commonActionMap = scenetree.findObject("VehicleCommonActionMap")
  if commonActionMap then

  local specificActionMap = scenetree.findObject("VehicleSpecificActionMap")
  if specificActionMap then
@/gameplay/missionTypes/busMode/customNodes/setBusRouteNode.lua
  for nameCount = stopIdx, #route do
    targetObj = scenetree.findObject(route[nameCount])
    if targetObj then
@/lua/ge/extensions/util/screenshotCreator.lua
              for _, mapName in ipairs(vehicleActionMaps) do
                local map = scenetree.findObject(mapName)
                if map then
@/lua/common/utils/heatmap.lua

  local terrain = scenetree.findObject(scenetree.findClassObjects('TerrainBlock')[1])
  terrainPosition = terrain:getPosition()
@/lua/ge/extensions/career/modules/vehiclePerformance.lua
      local vehicle = getObjectByID(vehId)
      local spawnPoint = scenetree.findObject("skidpadSpawn")
      spawn.safeTeleport(vehicle, spawnPoint:getPosition(), quat(0,0,1,0) * spawnPoint:getRotation(), nil, nil, nil, true, false)
@/lua/ge/extensions/tech/sensors.lua
  local requestId = getUniqueRequestId()
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_advancedIMU.adHocRequest(" .. sensorId .. ", " .. requestId .. ")")
  local requestId = getUniqueRequestId()
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_GPS.adHocRequest(" .. sensorId .. ", " .. requestId .. ")")
  local requestId = getUniqueRequestId()
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_powertrainSensor.adHocRequest(" .. sensorId .. ", " .. requestId .. ")")
  local requestId = getUniqueRequestId()
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_idealRADARSensor.adHocRequest(" .. sensorId .. ", " .. requestId .. ")")
  local requestId = getUniqueRequestId()
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_roadsSensor.adHocRequest(" .. sensorId .. ", " .. requestId .. ")")
  local requestId = getUniqueRequestId()
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_meshSensor.adHocRequest(" .. sensorId .. ", " .. requestId .. ")")
local function getBeamData(vid)
  local vehicleId = scenetree.findObject(vid):getID();
  local d = Research.SensorMatrixManager.getBeamData(vehicleId)
local function getFullTriangleData(vid)
  local vehicleId = scenetree.findObject(vid):getID();
  local d = Research.SensorMatrixManager.getFullTriangleData(vehicleId)
local function getWheelTriangleData(vid, wheelIndex)
  local vehicleId = scenetree.findObject(vid):getID();
  local d = Research.SensorMatrixManager.getWheelTriangleData(vehicleId, wheelIndex)
local function getNodePositions(vid, nodeId)
  local vehicleId = scenetree.findObject(vid):getID();
  return Research.SensorMatrixManager.getNodePositions(vehicleId)
local function getClosestMeshPointToGivenPoint(vid, point)
  local vehicleId = scenetree.findObject(vid):getID();
  return Research.SensorMatrixManager.getClosestMeshPointToGivenPoint(vehicleId, point)
local function getClosestTriangle(vid, point, includeWheelNodes)
  local vehicleId = scenetree.findObject(vid):getID();
  return Research.SensorMatrixManager.getClosestTriangle(vehicleId, point, includeWheelNodes)
local function removeAdvancedIMU(vid, sensorId)
  local vehicleId = scenetree.findObject(vid):getID()
  be:queueObjectLua(vehicleId, "extensions.tech_advancedIMU.remove(" .. sensorId .. ")")
local function setAdvancedIMUUpdateTime(sensorId, vid, updateTime)
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_advancedIMU.setUpdateTime(" .. sensorId .. ", " .. updateTime .. ")")
  local serialisedData = string.format("extensions.tech_advancedIMU.setIsUsingGravity(%q)", lpack.encode(data))
  be:queueObjectLua(scenetree.findObject(vid):getID(), serialisedData)
end
  local serialisedData = string.format("extensions.tech_advancedIMU.setIsVisualised(%q)", lpack.encode(data))
  be:queueObjectLua(scenetree.findObject(vid):getID(), serialisedData)
end
local function removeGPS(vid, sensorId)
  local vehicleId = scenetree.findObject(vid):getID()
  be:queueObjectLua(vehicleId, "extensions.tech_GPS.remove(" .. sensorId .. ")")
local function setGPSUpdateTime(sensorId, vid, updateTime)
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_GPS.setUpdateTime(" .. sensorId .. ", " .. updateTime .. ")")
  local serialisedData = string.format("extensions.tech_GPS.setIsVisualised(%q)", lpack.encode(data))
  be:queueObjectLua(scenetree.findObject(vid):getID(), serialisedData)
end
local function removePowertrainSensor(vid, sensorId)
  local vehicleId = scenetree.findObject(vid):getID()
  be:queueObjectLua(vehicleId, "extensions.tech_powertrainSensor.remove(" .. sensorId .. ")")
local function setPowertrainUpdateTime(sensorId, vid, updateTime)
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_powertrainSensor.setUpdateTime(" .. sensorId .. ", " .. updateTime .. ")")
local function removeIdealRADARSensor(vid, sensorId)
  local vehicleId = scenetree.findObject(vid):getID()
  be:queueObjectLua(vehicleId, "extensions.tech_idealRADARSensor.remove(" .. sensorId .. ")")
local function setIdealRADARUpdateTime(sensorId, vid, updateTime)
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_idealRADARSensor.setUpdateTime(" .. sensorId .. ", " .. updateTime .. ")")
local function removeRoadsSensor(vid, sensorId)
  local vehicleId = scenetree.findObject(vid):getID()
  be:queueObjectLua(vehicleId, "extensions.tech_roadsSensor.remove(" .. sensorId .. ")")
local function setRoadsSensorUpdateTime(sensorId, vid, updateTime)
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_roadsSensor.setUpdateTime(" .. sensorId .. ", " .. updateTime .. ")")
local function removeMeshSensor(vid, sensorId)
  local vehicleId = scenetree.findObject(vid):getID()
  be:queueObjectLua(vehicleId, "extensions.tech_mesh.remove(" .. sensorId .. ")")
local function setMeshUpdateTime(sensorId, vid, updateTime)
  local vehicleId = scenetree.findObject(vid):getID();
  be:queueObjectLua(vehicleId, "extensions.tech_mesh.setUpdateTime(" .. sensorId .. ", " .. updateTime .. ")")
local function removeValidation(vid, sensorId)
  local vehicleId = scenetree.findObject(vid):getID()
  be:queueObjectLua(vehicleId, "extensions.tech_validation.remove(" .. sensorId .. ")")
local function removeTyreBarrierTest(vid, sensorId)
  local vehicleId = scenetree.findObject(vid):getID()
  be:queueObjectLua(vehicleId, "extensions.tech_tyreBarrier.remove(" .. sensorId .. ")")
@/gameplay/missionTypes/scatterPickup/customNodes/scatterAnimatorNode.lua
        e.animationTimer = animationMax
        scenetree.findObject(e.objectId).hidden = not e.active
      end
      end
      scenetree.findObject(e.objectId):setScale(vec3(1,1,1) * sclCurve(e.animationTimer))
      scenetree.findObject(e.objectId):setPosition(lerp(e.pos, e.vehicleTarget, posCurve(e.animationTimer)) + vec3(0,0,zAdd(e.animationTimer)*e.zScl))
      scenetree.findObject(e.objectId):setScale(vec3(1,1,1) * sclCurve(e.animationTimer))
      scenetree.findObject(e.objectId):setPosition(lerp(e.pos, e.vehicleTarget, posCurve(e.animationTimer)) + vec3(0,0,zAdd(e.animationTimer)*e.zScl))
    end
@/lua/ge/server/commands.lua
  core_camera.clearInputs()
  local cam = scenetree.findObject("gameCamera")
  if not cam then

local function getGameCamera() return scenetree.findObject("gameCamera") end
local function setGameCamera()
@/lua/ge/client/lighting/basic/shadowFilter.lua

local bl_ShadowFilterShaderV = scenetree.findObject("BL_ShadowFilterShaderV")
if not bl_ShadowFilterShaderV then

local bl_ShadowFilterShaderH = scenetree.findObject("BL_ShadowFilterShaderH")
if not bl_ShadowFilterShaderH then

local bl_ShadowFilterSB = scenetree.findObject("BL_ShadowFilterSB")
if not bl_ShadowFilterSB then
if not bl_ShadowFilterSB then
  local pfx_defaultstateblock = scenetree.findObject("PFX_DefaultStateBlock")
  bl_ShadowFilterSB = createObject("GFXStateBlockData")
-- Blur horizontal
local bl_ShadowFilterPostFx = scenetree.findObject("BL_ShadowFilterPostFx")
if not bl_ShadowFilterPostFx then
@/lua/ge/extensions/core/forest.lua
    if next(forests) then
      forest = scenetree.findObject(forests[1])
      forestId = forest:getId()
@/lua/ge/extensions/editor/scriptAIEditor.lua
  for vid, p in pairs(polyLinesToExecute) do                                      -- Execute all the vehicle trajectories using the scriptAI backend.
    scenetree.findObject(vid):queueLuaCommand('ai.startFollowing(' .. serialize(p) .. ')')
  end
    if vid ~= nil then
      scenetree.findObject(vid):queueLuaCommand('ai.stopFollowing()')
    end
          if tr.vid ~= nil then
            local obj = scenetree.findObject(tr.vid)
            if obj ~= nil then
            core_camera.setByName(0, "orbit", false)
            be:enterVehicle(0, scenetree.findObject(vehicle.vid))
          end
                core_camera.setByName(0, "orbit", false)
                be:enterVehicle(0, scenetree.findObject(veh.vid))
                if twd.isOverlay[0] == true then
                if vwd.recordMode[i][0] == 2 then
                  scenetree.findObject(veh.vid):queueLuaCommand('ai.startRecording(true)')    -- Record a speed-based script.
                else
                else
                  scenetree.findObject(veh.vid):queueLuaCommand('ai.startRecording()')        -- Record a time-based script.
                end
              if editor.uiIconImageButton(editor.icons.stop, im.ImVec2(21, 21), nil, nil, nil, 'stopRecordingScript') then
                scenetree.findObject(veh.vid):queueLuaCommand('obj:queueGameEngineLua("extensions.hook(\\"onVehicleSubmitRecording\\","..tostring(objectId)..","..serialize(ai.stopRecording())..")")')
                stopExecute()
              core_camera.setByName(0, "orbit", false)
              be:enterVehicle(0, scenetree.findObject(tr.vid))
            end
@/lua/ge/extensions/editor/toolUtilities/util.lua
  local i = 1
  while scenetree.findObject(fullName) do
    name = baseName .. " - " .. i
@/lua/ge/extensions/util/export.lua

      local mat = scenetree.findObject(matNames[v.extras.bngMaterialId+1])
      local matVer
@/lua/ge/extensions/editor/api/camera.lua
  if not scenetree.MissionGroup then return end
  local bookmarksGroup = scenetree.findObject("MissionGroup/CameraBookmarks")
  if not bookmarksGroup then
@/lua/ge/extensions/freeroam/freeroam.lua

    local am = scenetree.findObject("ExplorationCheckpointsActionMap")
    if am then am:push() end
    M.state.freeroamActive = false
    local am = scenetree.findObject("ExplorationCheckpointsActionMap")
    if am then am:pop() end
@/lua/ge/extensions/flowgraph/nodes/scene/idByName.lua
  --if self.objID == nil then
  local ob =  scenetree.findObject(self.data.name or "")
  if ob then
@/lua/ge/extensions/editor/decalSpline.lua
      im.NextColumn()
      local mat = scenetree.findObject(selSpline.component1Material or "")
      if mat then
      im.NextColumn()
      mat = scenetree.findObject(selSpline.component2Material or "")
      if mat then
      im.NextColumn()
      mat = scenetree.findObject(selSpline.component3Material or "")
      if mat then
      im.NextColumn()
      mat = scenetree.findObject(selSpline.component4Material or "")
      if mat then
@/lua/ge/extensions/core/checkpoints.lua
  -- log('I', logTag,'saveAIPath called for '..vehicleName)
  local vehicle = scenetree.findObject(vehicleName)
  if vehicle then
@/lua/ge/client/postFx/GammaPostFX.lua
  -- log('I', 'gammaPostFX', 'preProcess called for gammaPostFX')
  local gammaPostFX = scenetree.findObject("GammaPostFX")
  if gammaPostFX then
gammaPostFXCallbacks.setShaderConsts = function()
  local gammaPostFX = scenetree.findObject("GammaPostFX")
  if gammaPostFX then

local gammaShader = scenetree.findObject("GammaShader")
if not gammaShader then

local gammaStateBlock = scenetree.findObject("GammaStateBlock")
if not gammaStateBlock then
if not gammaStateBlock then
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  gammaStateBlock = createObject("GFXStateBlockData")

local gammaPostFX = scenetree.findObject("GammaPostFX")
if not gammaPostFX then
@/lua/ge/server/server.lua
  -- clear LevelInfo so there is no conflict with the actual LevelInfo loaded in the level
  local levelInfo = scenetree.findObject("theLevelInfo")
  if levelInfo then
@/lua/ge/extensions/tech/impactgen/crashOutput.lua
  spawnPending = ego
  ego = scenetree.findObject(ego)
  other = scenetree.findObject(other)
  ego = scenetree.findObject(ego)
  other = scenetree.findObject(other)
  spawnPending = ego
  ego = scenetree.findObject(ego)
  other = scenetree.findObject(other)
  ego = scenetree.findObject(ego)
  other = scenetree.findObject(other)
  be:enterVehicle(0, ego)
  spawnPending = ego
  ego = scenetree.findObject(ego)
  be:enterVehicle(0, ego)
  log('crashOutput', 'I', 'Setting vehicle config.')
  local veh = scenetree.findObject(ego)
  spawnPending = ego
    local instance = instances[1]
    instance = scenetree.findObject(instance)
    instance:setField(field, 0, value)
  color = Point4F(color[1], color[2], color[3], color[4])
  local veh = scenetree.findObject(ego)
  veh:setColor(color)
  if spawnPending ~= nil then
    local obj = scenetree.findObject(spawnPending)
    if obj ~= nil and obj:getId() == vID then
@/lua/ge/extensions/gameplay/markers/gasStationMarker.lua
  for idx, pair in ipairs(cluster.pumps or {}) do
    local area = scenetree.findObject(pair[1])
    local icon = scenetree.findObject(pair[2])
    local area = scenetree.findObject(pair[1])
    local icon = scenetree.findObject(pair[2])
    if area and icon then
  self:clearObjects()
  iconRendererObj = scenetree.findObject(iconRendererName)
  if not iconRendererObj then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj then
@/lua/ge/extensions/core/terrain.lua
    if next(terrains) then
      terrain = scenetree.findObject(terrains[1])
      terrainId = terrain:getId()
@/gameplay/missionTypes/scatterPickup/customNodes/scatterResetNode.lua
    state.zScl = nil
    local obj = scenetree.findObject(state.objectId)
    if obj then
@/lua/ge/extensions/editor/trafficManager.lua

  local group = scenetree.findObject(simGroupName)
  table.clear(session.vehiclesSorted)
  for _, objName in ipairs(group:getObjects()) do -- automatically registers objects as session data, depending on class and dynamic fields
    local obj = scenetree.findObject(objName)
    local className = obj:getClassName()
  if scenetree.objectExists(simGroupName) then
    scenetree.findObject(simGroupName):delete()
    be:reloadCollision()
  if aiData.targetName ~= nil then -- target vehicle for AI mode
    local targetVeh = scenetree.findObject(aiData.targetName)
    if targetVeh then
      for _, nameId in ipairs(session[key]) do
        local veh = scenetree.findObject(nameId)
        if veh then
          end
          local innerGroup = scenetree.findObject(simGroupName)
          innerGroup:addObject(playerVeh)
      local tempName = ffi.string(options.vehicleName)
      if not scenetree.findObject(tempName) then -- transfer vehicle data to new table
        currVeh:setName(tempName)
        end
        local innerGroup = scenetree.findObject(simGroupName)
        innerGroup:addObject(veh)
      for _, data in ipairs(data.vehicles) do
        local veh = scenetree.findObject(data.name) -- vehicles need to be referenced by name instead of id when loading from prefab
        if veh then
      if scenetree.objectExists(nameId) then
        local obj = scenetree.findObject(nameId)
        spawn.safeTeleport(obj, obj:getPosition(), quatFromDir(obj:getDirectionVector(), obj:getDirectionVectorUp()), nil, nil, false, true)
  if scenetree.objectExists(simGroupName) then
    editor.selectObjects({scenetree.findObject(simGroupName):getID()})
    local prefab = editor.createPrefabFromObjectSelection(prefabFilePath, nil, "auto") -- saves prefab file
        if not sessionData.home.p1 then
          local veh = scenetree.findObject(currSelection.vehicle)
          if veh then

  local group = scenetree.findObject(simGroupName)
@/lua/ge/extensions/ui/console.lua
  for _, mapName in ipairs(vehicleActionMaps) do
    local map = scenetree.findObject(mapName)
    if map then
@/lua/ge/extensions/core/multiseat.lua
  if changed then
    local o = scenetree.findObject("MultiseatActionMap")
    if o then
@/lua/ge/extensions/freeroam/facilities/fuelPrice.lua
local function _set7CharDisplay(objName, char)
  local obj = scenetree.findObject(objName)
  if not obj then log("E","setPrices",dumps(objName).."was not found");return end
  local didWork = false
  groupLC = scenetree.findObject("fuelPrice_localCopies")
  if not groupLC then
          for _,objName in ipairs(v2.displayObjects[i]) do
            local obj = scenetree.findObject(objName)
            if not obj then log("E","setPrices",dumps(objName).."was not found");return end
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/simpleFollowDecalroad.lua
function C:loadRecording()
  local road = scenetree.findObject(self.pinIn.roadName.value or "")
  if not road then return end
@/lua/ge/extensions/flowgraph/nodes/mission/stageLightsDragRace.lua
    stageLights = {
      prestageLightL  = {obj = scenetree.findObject("Prestagelight_l"), anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      prestageLightL  = {obj = scenetree.findObject("Prestagelight_l"), anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      stageLightR     = {obj = scenetree.findObject("Stagelight_r"),    anim = "prestage"}
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      stageLightR     = {obj = scenetree.findObject("Stagelight_r"),    anim = "prestage"}
    }
@/lua/ge/extensions/core/input/actions.lua
      -- create any new/missing actionmaps in c++ side
      local am = scenetree.findObject(actionMap)
      if not am then
local function queueCmd(vehId, cmd)
  local vehObj = scenetree.findObject(vehId)
  if vehObj then
@/lua/ge/extensions/render/hdr.lua

    local postEffectBrightPassObj = scenetree.findObject("PostEffectBrightPassObject")
    if not postEffectBrightPassObj then

    local postEffectDownScaleObj = scenetree.findObject("PostEffectDownScaleObject")
    if not postEffectDownScaleObj then

    local postEffectLuminance = scenetree.findObject("PostEffectLuminanceObject")
    if not postEffectLuminance then

    local postEffectCombinePass = scenetree.findObject("PostEffectCombinePassObject")
    if not postEffectCombinePass then
@/lua/ge/client/lighting/advanced/shadowViz.lua

local al_ShadowVisualizeShader = scenetree.findObject("AL_ShadowVisualizeShader")
if not al_ShadowVisualizeShader then

local al_ShadowVisualizeMaterial = scenetree.findObject("AL_ShadowVisualizeMaterial")
if not al_ShadowVisualizeMaterial then
@/lua/ge/extensions/flowgraph/nodes/mission/lightsController.lua
    stageLights = {
      prestageLightL  = {obj = scenetree.findObject("Prestagelight_l"), anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      prestageLightL  = {obj = scenetree.findObject("Prestagelight_l"), anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      prestageLightR  = {obj = scenetree.findObject("Prestagelight_r"), anim = "prestage"},
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      stageLightR     = {obj = scenetree.findObject("Stagelight_r"),    anim = "prestage"}
      stageLightL     = {obj = scenetree.findObject("Stagelight_l"),    anim = "prestage"},
      stageLightR     = {obj = scenetree.findObject("Stagelight_r"),    anim = "prestage"}
    },
    countDownLights = {
      amberLight1R    = {obj = scenetree.findObject("Amberlight1_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight1R    = {obj = scenetree.findObject("Amberlight1_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight2R    = {obj = scenetree.findObject("Amberlight2_R"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight3R    = {obj = scenetree.findObject("Amberlight3_R"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight1L    = {obj = scenetree.findObject("Amberlight1_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      amberLight2L    = {obj = scenetree.findObject("Amberlight2_L"), anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      amberLight3L    = {obj = scenetree.findObject("Amberlight3_L"), anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      greenLightR     = {obj = scenetree.findObject("Greenlight_R"),  anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      redLightR       = {obj = scenetree.findObject("Redlight_R"),    anim = "tree"},
      greenLightL     = {obj = scenetree.findObject("Greenlight_L"),  anim = "tree"},
      redLightR       = {obj = scenetree.findObject("Redlight_R"),    anim = "tree"},
      redLightL       = {obj = scenetree.findObject("Redlight_L"),    anim = "tree"}
      redLightR       = {obj = scenetree.findObject("Redlight_R"),    anim = "tree"},
      redLightL       = {obj = scenetree.findObject("Redlight_L"),    anim = "tree"}
    }
@/lua/ge/extensions/ui/missionInfo.lua
  if content.actionMap ~= false then
    local am = scenetree.findObject("MissionUIActionMap")
    if am then am:push() end
  --if content.actionMap ~= false then
  --  local am = scenetree.findObject("MissionUIActionMap")
  --  if am then am:push() end
M.closeDialogue = function()
  local am = scenetree.findObject("MissionUIActionMap")
  if am then am:pop() end
@/lua/ge/extensions/editor/raceEditor/tools.lua
  local groupName = self.path.name.."_decoration"
  local group = scenetree.findObject(groupName)
      groupCounter = groupCounter + 1
      group = scenetree.findObject(groupName .. groupCounter)
    end
    for _, node in pairs(self.path.pathnodes.objects) do
      if scenetree.findObject(node.name) then
        scenetree.findObject(node.name):delete()
      if scenetree.findObject(node.name) then
        scenetree.findObject(node.name):delete()
      end
@/ui/ui-vue/src/bridge/libs/UINavEvents.js
  //lua.extensions.core_input_bindings.setMenuActionMapEnabled(state) // not 100% sure this is safe
  //runRawLua(`scenetree.findObject("${UI_NAVIGATION_ACTION_MAP}"):${state?'push':'pop'}()`) // TODO: REMOVE ME: this should have been done already thanks to the line above. if you are reading this comment after v0.34 has been released to the public, delete this line ASAP so we can test and release to public without it
}
@/lua/ge/extensions/scenario/quickRace.lua
    end
    local spawnObj = scenetree.findObject(spawnSphere)
    if spawnObj ~= nil then
@/lua/ge/extensions/gameplay/missions/missionManager.lua
  for _, name in ipairs(scenetree.findClassObjects("BeamNGVehicle")) do
    local obj = scenetree.findObject(name)
    if obj then
    for _, name in ipairs(scenetree.findClassObjects("BeamNGVehicle")) do
      local obj = scenetree.findObject(name)
      if obj and obj:getActive() then
@/lua/ge/extensions/editor/assemblySpline/import.lua
    if entry.name then
      local obj = scenetree.findObject(entry.name)
      if obj and obj:getClassName() == "TSStatic" then
  for _, meshName in pairs(scenetree.findClassObjects("TSStatic")) do
    local obj = scenetree.findObject(meshName)
    if obj then
@/lua/ge/extensions/editor/materialEditor.lua
  for _, objName in ipairs(meshNames) do
    local obj = scenetree.findObject(objName)
    if obj then
  for _, defName in ipairs(defs) do
    local defObj = scenetree.findObject(defName)
    if defObj then
    local matName = matNames[i]
    mat = scenetree.findObject(matName)
    if mat and mat.___type == "class" and not mat:isAutoGenerated() then
  if not materialName then return end
  currentMaterial = scenetree.findObject(materialName)
  if not currentMaterial then return end
      for _, objName in ipairs(editor.selection.object) do
        local obj = scenetree.findObject(objName)
        if obj and (obj.___type == "class" or obj.___type == "class") then
  for k, val in pairs(sortedMaterialObjectNamesAtTop) do
    local mat = scenetree.findObject(val)
    if mat and mat.___type == "class" then
  for k, val in pairs(sortedMaterialObjectNames) do
    local mat = scenetree.findObject(val)
    if mat and mat.___type == "class" then
  for matName, _ in pairs(v.dirtyMaterials) do
    local mat = scenetree.findObject(matName)
    if mat then
local function cubemapFaceUndo(actionData)
  local obj = scenetree.findObject(actionData.objectId)
  if obj then
local function cubemapFaceRedo(actionData)
  local obj = scenetree.findObject(actionData.objectId)
  if obj then
  ffi.copy(cubemapNamePtr, cubemapName)
  selectedCubemapObj = scenetree.findObject(cubemapName)
end
      createMaterialName = ffi.string(newMatName)
      local mat = scenetree.findObject(createMaterialName)
      if mat then
@/lua/ge/extensions/editor/mainToolbar.lua
    for _, mapName in ipairs(vehicleActionMaps) do
      local map = scenetree.findObject(mapName)
      if map then
@/lua/ge/client/postFx/edgeAA.lua

local pfxDefaultEdgeAAStateBlock = scenetree.findObject("PFX_DefaultEdgeAAStateBlock")
if not pfxDefaultEdgeAAStateBlock then

local pfxEdgeAADetectShader = scenetree.findObject("PFX_EdgeAADetectShader")
if not pfxEdgeAADetectShader then

local pfxEdgeAAShader = scenetree.findObject("PFX_EdgeAAShader")
if not pfxEdgeAAShader then

local pfxEdgeAADebugShader = scenetree.findObject("PFX_EdgeAADebugShader")
if not pfxEdgeAADebugShader then

local edgeDetectPostEffect = scenetree.findObject("EdgeDetectPostEffect")
if not edgeDetectPostEffect then

local edgeDetectPostEffect = scenetree.findObject("EdgeAAPostEffect")
if not edgeDetectPostEffect then

local debug_EdgeAAPostEffect = scenetree.findObject("Debug_EdgeAAPostEffect")
if not debug_EdgeAAPostEffect then
@/lua/ge/extensions/flowgraph/nodes/ui/imgui/elemental/imBegin.lua
    if anchor == "TL" or anchor == "TR" or anchor == "BL" or anchor == "BR" then
      local canvasObject = scenetree.findObject("Canvas")
      if canvasObject then
@/lua/ge/extensions/scenario/scenarios.lua
      if scenario.vehicles[vName].driver["fleeTarget"] then
       targetvehicle = scenetree.findObject(scenario.vehicles[vName].driver["fleeTarget"])
       targetVehId = targetvehicle:getID()
local function showIntroPrefab(visible)
  local introPrefab = scenetree.findObject(scenario.scenarioName..'_intro')
  if not introPrefab then return end
local function deleteVehicle(vehicleName)
  local vehicle = scenetree.findObject(vehicleName)
  if vehicle then
          local vehicleName = assignment.vehicleName
          local vehicle = scenetree.findObject(vehicleName)
          if vehicle then
    if not node1 then
      node1 = scenetree.findObject(scenario.lapConfig[i])
      pos1 = node1:getPosition()
    if not node2 then
      node2 = scenetree.findObject(scenario.lapConfig[i + 1])
      pos2 = node2:getPosition()
  for objName, objFields in pairs(initialLevelState) do
    local levelObj = scenetree.findObject(objName)
    if levelObj and levelObj.obj then
  for objName, objFields in pairs(scenario.levelObjects) do
    local levelObj = scenetree.findObject(objName)
    if levelObj and levelObj.obj then
local function setupPathCamera()
  local democam = scenetree.findObject('democam')
  if democam and democam.className == 'SimPath' then
  if democam and democam.className == 'SimPath' then
    pathCameraData.hasIntro = scenetree.findObject("democam_intro") ~= nil
    pathCameraData.hasDemo = scenetree.findObject("democam") ~= nil
    pathCameraData.hasIntro = scenetree.findObject("democam_intro") ~= nil
    pathCameraData.hasDemo = scenetree.findObject("democam") ~= nil
    pathCameraData.hasCampaignIntro = scenetree.findObject("democam_campaign_intro") ~= nil
    pathCameraData.hasDemo = scenetree.findObject("democam") ~= nil
    pathCameraData.hasCampaignIntro = scenetree.findObject("democam_campaign_intro") ~= nil
    pathCameraData.getNextPath = nop
  for k, vecName in ipairs(vehicles) do
    local to = scenetree.findObject(vecName)
    if to and to.obj and to.obj:getId() and prefabIsChildOfGroup(to.obj, 'ScenarioObjectsGroup') then
    --log('D', logTag, tostring(k) .. ' = ' .. tostring(nodeName))
    local o = scenetree.findObject(nodeName)
    if o then
    -- set free camera and use camera bookmark
    local cameraMark = scenetree.findObject(scenario.camera.name)
    if cameraMark then
    local objName = string.lower(objNameNew or objNameOld)
    if not scenetree.findObject(objName) then
      local prefabObj = spawnPrefab(objName, filename, '0 0 0', '0 0 1 0', '1 1 1')
    data.vehicles[index] = vehicleName
    local vehicleObj = scenetree.findObject(vehicleName)
    if vehicleObj and vehicleObj.internalName and vehicleObj.internalName ~= "" then

    local democam = scenetree.findObject('democam')
    if democam and democam.className == 'SimPath' then
    end
    local vehicle = scenetree.findObject(vehicleName)
    if vehicle then
      for k, vecName in ipairs(vehicles) do
        local vehicle = scenetree.findObject(vecName)
        if vehicle and vehicle.obj then
    for vehName,data in pairs(scenario.vehicleTrackingTable) do
      local vehicle = scenetree.findObject(vehName)
      local vehicleID = vehicle:getID()
    for _,name in ipairs(triggers) do
      local trigger = scenetree.findObject(name)
      if trigger then
    for k, vehicleName in ipairs(allVehicles) do
      local vehicle = scenetree.findObject(vehicleName)
      if vehicle then
    for vName, _ in pairs(scenario.vehicleNameToId or {}) do
      local vehicle = scenetree.findObject(vName)
      if vehicle then
      for vehicleName, vehicleData in pairs(scenario.multiseatDeletedVehicles or {}) do
        local vehicle = scenetree.findObject(vehicleName)
        if not vehicle and vehicleData then
    for k, vehicleName in ipairs(vehicles) do
      local vehicle = scenetree.findObject(vehicleName)
      if vehicle:isReady() then
        for vehicleName, _ in pairs(scenario.multiseatDeletedVehicles or {}) do
          local vehicle = scenetree.findObject(vehicleName)
          if vehicle then

  local vehicle = scenetree.findObject(vehicleName)
  if vehicle and data then
@/lua/ge/extensions/flowgraph/nodes/util/closestRoad.lua
        if not idId then
          local obj = scenetree.findObject(string.sub(short,1,underscoreIndex-1))
          if obj then
@/lua/ge/extensions/flowgraph/nodes/vehicle/toggleVehicleControls.lua
function C:work()
  local o = scenetree.findObject("VehicleCommonActionMap")
  if o then o:setEnabled(self.pinIn.controllable.value) end
  -- undo all stuff you did
  local o = scenetree.findObject("VehicleCommonActionMap")
  if o then o:setEnabled(true) end
@/lua/ge/extensions/editor/roadDecorations.lua
M.decorateProps = function(roadName, shapeName, distance, period, rotation, zOff, align)
  local road = scenetree.findObject(roadName)
  local props = {}
    local groupName = string.format('decorations.%d', tostring(roadName))
    local group = scenetree.findObject(groupName)
        groupCounter = groupCounter + 1
        group = scenetree.findObject(groupName .. groupCounter)
      end
@/lua/ge/extensions/editor/gen/exp_frame.lua
W.up = function(k, lbl)
    local obj = scenetree.findObject("spawn_default")
    if obj then obj.hidden = true end
    if obj then obj.hidden = true end
    obj = scenetree.findObject("thePlayer")
    if obj then obj:delete() end

    groupEdit = scenetree.findObject('edit')
    if not groupEdit then
@/lua/ge/extensions/core/settings/graphic.lua
local function videoModeFromString( videoModeStr )
  local canvas = scenetree.findObject("Canvas")
local function updateDisplayInfoWindowRegion()
  local canvas = scenetree.findObject("Canvas")
  if canvas then
      end
      local canvas = scenetree.findObject("Canvas")
      local desktopMode = GFXDevice.getDesktopMode() or {width = 1280, height = 720}
      if o.WindowPlacement.placement == "" then
        local canvas = scenetree.findObject("Canvas")
        o.WindowPlacement.placement =  canvas and canvas:getPlacement() or ""

      local smaaPostEffect = scenetree.findObject("SMAA_PostEffect")
      local fxaaPostEffect = scenetree.findObject("FXAA_PostEffect")
      local smaaPostEffect = scenetree.findObject("SMAA_PostEffect")
      local fxaaPostEffect = scenetree.findObject("FXAA_PostEffect")
      if value == "fxaa" then
    set = function ( value )
      local SMAA_PostEffect = scenetree.findObject("SMAA_PostEffect")
      if not SMAA_PostEffect then return end
      if not SMAA_PostEffect then return end
      local FXAA_PostEffect = scenetree.findObject("FXAA_PostEffect")
      if not FXAA_PostEffect then return end
    get = function ()
      local DOFPostEffect = scenetree.findObject("DOFPostEffect")
      if not DOFPostEffect then return end
      TorqueScriptLua.setVar( '$DOFPostFx::Enable', value )
      local DOFPostEffect = scenetree.findObject("DOFPostEffect")
      if not DOFPostEffect then return end
      settings.setValue("PostFXBloomGeneralEnabled", value)
      local postFX = scenetree.findObject("PostEffectBloomObject")
      if not postFX then return end
    get = function ()
      local LightRayPostFX = scenetree.findObject("LightRayPostFX")
      if not LightRayPostFX then return end
      --print("*************LightRayPostFX 2 set")
      local LightRayPostFX = scenetree.findObject("LightRayPostFX")
      if not LightRayPostFX then return end
      settings.setValue("PostFXMotionBlurEnabled", value)
      local fx = scenetree.findObject("PostFxMotionBlur")
      if not fx then return end
    get = function ()
      local SSAOPostFx = scenetree.findObject("SSAOPostFx")
      if not SSAOPostFx then return end
      TorqueScriptLua.setVar( '$SSAOPostFx::Enable', value )
      local SSAOPostFx = scenetree.findObject("SSAOPostFx")
      if not SSAOPostFx then return end
      if enabled == 0 then return end
      local ssao = scenetree.findObject("SSAOPostFx")
      if not ssao then return end
  --log('I', 'graphic', 'onFirstUpdateSettings called.....')
  local canvas = scenetree.findObject("Canvas")
  if not canvas then return end
  -- set canvas mode
  local canvas = scenetree.findObject("Canvas")
local function toggleFullscreen()
  local canvas = scenetree.findObject("Canvas")
@/lua/ge/extensions/gameplay/markers/bigmapMarker.lua

  iconRendererObj = scenetree.findObject(iconRendererName)
  if not iconRendererObj then
@/lua/ge/extensions/editor/decalEditor.lua
    local label = selectedInstance.template:__tostring()
    local material = scenetree.findObject(selectedInstance.template.material)
  if selectedTemplate and selectedTemplate.material then
    local material = scenetree.findObject(selectedTemplate.material)
    if material then
@/lua/ge/extensions/gameplay/markers/walkingMarker.lua
  for idx, ntuple in ipairs(cluster.doors or {}) do
    local area = scenetree.findObject(ntuple[1])
    local icon = scenetree.findObject(ntuple[2])
    local area = scenetree.findObject(ntuple[1])
    local icon = scenetree.findObject(ntuple[2])
    if area and icon then
      if (cluster.screens or {})[idx] then
        local screenObj = scenetree.findObject((cluster.screens or {})[idx])
        if screenObj then
  self:clearObjects()
  iconRendererObj = scenetree.findObject(iconRendererName)
  if not iconRendererObj then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj then
@/lua/ge/extensions/editor/terraform/fetchSources.lua
  for _, meshRoadName in ipairs(scenetree.findClassObjects("MeshRoad")) do
    local road = scenetree.findObject(meshRoadName)
    local center = road:getWorldBox():getCenter()
@/lua/ge/extensions/editor/resourceChecker.lua
  for _, objName in ipairs(objs) do
    local o = scenetree.findObject(objName)
    if o then
local function matHovered(res)
  local mat = scenetree.findObject(res)
  local matPreviewSize = 128 * im.uiscale[0]
      if type and type == 'material' or type == 'duplicates' or type == 'usedMat' then
        local o = scenetree.findObject(res)
        if o and o.getFileName then
@/lua/ge/extensions/editor/buildingEditor.lua
if U._PRD == 1 then
	if scenetree.findObject('edit') then
--      lo('??____ FOUND_edit:')
--      lo('??____ FOUND_edit:')
		scenetree.MissionGroup:removeObject(scenetree.findObject('edit'))
	end
	end
	if scenetree.findObject('lines') then
		scenetree.MissionGroup:removeObject(scenetree.findObject('lines'))
	if scenetree.findObject('lines') then
		scenetree.MissionGroup:removeObject(scenetree.findObject('lines'))
	end
	end
	if scenetree.findObject('e_road') then
		scenetree.MissionGroup:removeObject(scenetree.findObject('e_road'))
	if scenetree.findObject('e_road') then
		scenetree.MissionGroup:removeObject(scenetree.findObject('e_road'))
		local obj = scenetree.findObject('e_road')
		scenetree.MissionGroup:removeObject(scenetree.findObject('e_road'))
		local obj = scenetree.findObject('e_road')
		if obj then
		end
		print('?? ^^^^^^^^^^^ had_EROAD:'..tostring(scenetree.findObject('e_road')))
	end
--		print('>>______________________________________________________ onActivate:'..tostring(U._PRD))
--	lo('>> onActivate:'..tostring(isfirst)..':'..tostring(U._PRD)..' edit:'..tostring(scenetree.findObject('edit')))
	if U._PRD == 1 then
		if scenetree.findObject('edit') then
--      lo('??____ FOUND_edit:')
--      lo('??____ FOUND_edit:')
			scenetree.MissionGroup:removeObject(scenetree.findObject('edit'))
		end
		end
		if scenetree.findObject('lines') then
			scenetree.MissionGroup:removeObject(scenetree.findObject('lines'))
		if scenetree.findObject('lines') then
			scenetree.MissionGroup:removeObject(scenetree.findObject('lines'))
		end
		end
		if scenetree.findObject('e_road') then
			scenetree.MissionGroup:removeObject(scenetree.findObject('e_road'))
		if scenetree.findObject('e_road') then
			scenetree.MissionGroup:removeObject(scenetree.findObject('e_road'))
		end
--    W.buildingGen()
--    if _dbg then scenetree.findObject("thePlayer"):setMeshAlpha(0, "", false) end
--[[
	if scenetree.findObject("edit") == nil then
		local go = createObject("SimGroup")
local function onDeactivate()
--		print('>> onDeactivate:'..tostring(U._PRD)..':'..tostring(scenetree.findObject('e_road')))
		if scenetree.findObject('e_road') then
--		print('>> onDeactivate:'..tostring(U._PRD)..':'..tostring(scenetree.findObject('e_road')))
		if scenetree.findObject('e_road') then
			scenetree.MissionGroup:removeObject(scenetree.findObject('e_road'))
		if scenetree.findObject('e_road') then
			scenetree.MissionGroup:removeObject(scenetree.findObject('e_road'))
			local obj = scenetree.findObject('e_road')
			scenetree.MissionGroup:removeObject(scenetree.findObject('e_road'))
			local obj = scenetree.findObject('e_road')
			if obj then
		end
		if scenetree.findObject('e_road') then
			print('!! BAT.CLEANUP_FOLDERS')
	if U._PRD == 1 then
--			print('?? BAT_deact:'..tostring(scenetree.findObject('e_road')))
		if scenetree.findObject('edit') then
--			print('?? BAT_deact:'..tostring(scenetree.findObject('e_road')))
		if scenetree.findObject('edit') then
			scenetree.MissionGroup:removeObject(scenetree.findObject('edit'))
		if scenetree.findObject('edit') then
			scenetree.MissionGroup:removeObject(scenetree.findObject('edit'))
        		lo('?? onDeactivate_edit_REMOVED:'..tostring(scenetree.findObject('edit')))
			scenetree.MissionGroup:removeObject(scenetree.findObject('edit'))
        		lo('?? onDeactivate_edit_REMOVED:'..tostring(scenetree.findObject('edit')))
	--        scenetree.findObject('edit'):delete()
        		lo('?? onDeactivate_edit_REMOVED:'..tostring(scenetree.findObject('edit')))
	--        scenetree.findObject('edit'):delete()
		end
		end
		if scenetree.findObject('lines') then
			scenetree.MissionGroup:removeObject(scenetree.findObject('lines'))
		if scenetree.findObject('lines') then
			scenetree.MissionGroup:removeObject(scenetree.findObject('lines'))
	--        scenetree.findObject('edit'):delete()
			scenetree.MissionGroup:removeObject(scenetree.findObject('lines'))
	--        scenetree.findObject('edit'):delete()
		end
local function onSerialize()
--		print('??^^^^^^^^^^ onSerialize:'..tostring(scenetree.findObject('e_road')))
	if scenetree.findObject('e_road') then
--		print('??^^^^^^^^^^ onSerialize:'..tostring(scenetree.findObject('e_road')))
	if scenetree.findObject('e_road') then
		scenetree.MissionGroup:removeObject(scenetree.findObject('e_road'))
	if scenetree.findObject('e_road') then
		scenetree.MissionGroup:removeObject(scenetree.findObject('e_road'))
		local obj = scenetree.findObject('e_road')
		scenetree.MissionGroup:removeObject(scenetree.findObject('e_road'))
		local obj = scenetree.findObject('e_road')
		if obj then
	if false then return end
	local groupDecal = scenetree.findObject('e_road')
	if groupDecal then
@/lua/ge/extensions/editor/rendererComponents.lua
        local data = HDRsettings[pfxName]
        local obj = scenetree.findObject(data.objectName)
local function renderDepthOfFieldTab()
  local DOFPostEffect = scenetree.findObject("DOFPostEffect")
  if not DOFPostEffect then
    TorqueScriptLua.setVar("$PostFXManager::PostFX::EnableLightRays", lightraysSettings['enable'].value)
    local lightRayPostFX = scenetree.findObject("LightRayPostFX")
    if lightRayPostFX then
      local data = HDRsettings[pfxName]
      local obj = scenetree.findObject(data.objectName)
M.onEditorActivated = function()
  local DOFPostEffect = scenetree.findObject("DOFPostEffect")
  if DOFPostEffect then

  local lightRayPostFX = scenetree.findObject("LightRayPostFX")
  if lightRayPostFX then
@/lua/ge/extensions/editor/audioRibbonEditor.lua
      for i = 1, #riverNames do
        local river = scenetree.findObject(riverNames[i])
        if river then
    if waterPlanes and waterPlanes[1] then
      local waterPlane = scenetree.findObject(waterPlanes[1])
      if waterPlane:getClassName() == "WaterPlane" then
@/ui/ui-vue/dist/index.js
Parent:`,parent$1,`
Child:`,prioNode),warnPrioNesting=!0)}let active=document.activeElement;(!active||!prioNode.contains(active))&&(rectNode=prioNode)}let rect=rectNode.getBoundingClientRect();if(rect.right<0||rect.bottom<0||rect.left>screen.width||rect.top>screen.height){node.classList.remove(MENU_NAVIGATION_CLASS);continue}node.classList.add(MENU_NAVIGATION_CLASS),node.tabIndex=0;let lnk={dom:node,rect};links.up&&links.up.push(lnk),links.down&&links.down.push(lnk),links.left&&links.left.push(lnk),links.right&&links.right.push(lnk)}return links.up&&links.up.sort((a$1,b)=>a$1.rect.top-b.rect.top),links.down&&links.down.sort((a$1,b)=>a$1.rect.bottom-b.rect.bottom),links.left&&links.left.sort((a$1,b)=>a$1.rect.left-b.rect.left),links.right&&links.right.sort((a$1,b)=>a$1.rect.right-b.rect.right),links}function isAvailable(node){if(!isVisibleFast(node))return!1;let style=document.defaultView.getComputedStyle(node,null);return style[`pointer-events`]===`none`||!isVisible(node,style)?!1:!isOccluded(node)}function isOccluded(node,dontIgnoreOffscreen=!1){let rects=node.getClientRects();for(let rect of rects)if(!isOccluded$1(node,rect,dontIgnoreOffscreen))return!1;return!0}function getDistanceFast(curr,goal,direction$1,usePerpendicular=!1){let dx=Math.min(goal.right,curr.right)-Math.max(goal.left,curr.left),dy=Math.min(goal.bottom,curr.bottom)-Math.max(goal.top,curr.top);dx===goal.right-goal.left&&(dx=curr.right-goal.left),dy===goal.bottom-goal.top&&(dy=curr.bottom-goal.top);let res=1/0;if(direction$1===DIR.DOWN&&goal.bottom>curr.bottom?res=Math.max(0,goal.bottom-curr.top)-dx:direction$1===DIR.UP&&goal.topcurr.right?res=Math.max(0,goal.left-curr.right)-dy:direction$1===DIR.LEFT&&goal.left{let firstLink=null,firstElementDistance=2**53-1;for(let link of links){let distance=link.rect.top*link.rect.top+link.rect.left*link.rect.left;distance>firstElementDistance||(firstElementDistance=distance,firstLink=link)}if(!firstLink){console.log(`Couldn't locate any button anywhere. Menu navigation won't work`);return}focusOnElement(firstLink.dom),scrollFix(firstLink,direction$1)}),!0;if(active.nodeName===`MD-SLIDER`&&(direction$1===DIR.LEFT||direction$1===DIR.RIGHT)||active.nodeName===`MD-OPTION`&&(direction$1===DIR.UP||direction$1===DIR.DOWN)||active.nodeName===`INPUT`&&active.type===`range`&&(direction$1===DIR.LEFT||direction$1===DIR.RIGHT))return fireKey(active,direction$1),!0;let{nearestLink,fixScroll}=findNext(links,direction$1,active);if(nearestLink)return focusOnElement(nearestLink.dom),fixScroll?.(),nearestLink.dom;if(links.length===0){let mdBackdrops=[...document.querySelectorAll(`md-backdrop, .md-scroll-mask`)];if(mdBackdrops.length>0){for(let el of mdBackdrops)try{el.parentNode.removeChild(el)}catch{}return navigateNext(links,direction$1,activeOverride)}}return!1}function findNext(links,direction$1,activeOverride=null){let active=activeOverride||document.activeElement,activeRect=active.getBoundingClientRect(),fixScroll=!0;if(isScrolling(direction$1)&&isOccluded(active,activeRect,!0)){let axis,boundsame,boundchange;switch(direction$1){case DIR.UP:case DIR.DOWN:axis=`vertical`,boundsame=[`left`,`right`],boundchange=[`top`,`bottom`];break;case DIR.LEFT:case DIR.RIGHT:axis=`horizontal`,boundsame=[`top`,`bottom`],boundchange=[`left`,`right`];break}if(navScrolling[axis].area){let bounds=navScrolling[axis].area.bounds,axisBound=activeRect[boundchange[1]]scrollFix(nearestLink,direction$1):null}}var navScrolling={running:!1,listening:{vertical:!1,horizontal:!1},dom:null,rect:null,vertical:{active:!1,amount:0,area:null},horizontal:{active:!1,amount:0,area:null},hint:{show:!1}};function drawScrollHint(){let show=isScrolling();if(navScrolling.hint.show===show)return;navScrolling.hint.show=show;let elem=document.getElementById(`xf_scroll`);elem&&(elem.style.display=show?``:`none`)}function navigateScroll(axis,amount){if(axis===AXIS_V&&(amount=-amount),navScrolling[axis].amount=amount*15,Math.abs(navScrolling[axis].amount)<1){navScrolling[axis].active=!1;return}navScrolling[axis].active=!0;let dom=document.activeElement;navScrolling.dom!==dom&&(navScrolling.dom=dom,navScrolling.rect=dom.getBoundingClientRect(),navScrolling[axis===AXIS_H?AXIS_V:AXIS_H].active=!1);let area=findScrollable(navScrolling,axis,!0);if(navScrolling[axis].area=area,!area){navScrolling[axis].active=!1;return}return navScrolling.running||window.requestAnimationFrame(function scrl(){let set={};for(let axis$1 of[AXIS_V,AXIS_H]){let cur=navScrolling[axis$1];if(!cur.active||!cur.area)continue;let pos=cur.area.parent[cur.area.readby]+navScrolling[axis$1].amount;pos>cur.area.fullsize?cur.active=!1:set[cur.area.moveby]=pos}navScrolling.running=Object.keys(set).length>0,navScrolling.running&&(area.parent.scrollTo({...set,behavior:`instant`}),document.dispatchEvent(new CustomEvent(`mdtooltiphide`)),window.requestAnimationFrame(scrl))}),!0}function scrollCatch(axis,enable){if(navScrolling.listening[axis]===enable)return;let cur=isScrolling();navScrolling.listening[axis]=enable,cur!==isScrolling()&&(bngApi.engineLua(`local o = scenetree.findObject("MenuScrollActionMap"); if o then o:${enable?`push`:`pop`}() end`),window.bngVue.uiNavTracker&&(enable?window.bngVue.uiNavTracker.addEvent(UI_SCROLL_ACTION_EVENTS[axis],TRACKER_ID):window.bngVue.uiNavTracker.removeEvent(UI_SCROLL_ACTION_EVENTS[axis],TRACKER_ID)))}function isScrolling(direction$1=void 0){let scrolling=!1;return direction$1?direction$1===DIR.UP||direction$1===DIR.DOWN?scrolling=navScrolling.listening.vertical:(direction$1===DIR.LEFT||direction$1===DIR.RIGHT)&&(scrolling=navScrolling.listening.horizontal):scrolling=navScrolling.listening.horizontal||navScrolling.listening.vertical,scrolling}function isScrollListening(axis=void 0){let listening=!1;return listening=axis?navScrolling.listening[axis]:navScrolling.listening.horizontal||navScrolling.listening.vertical,listening}function findScrollable(link,axis,thumbstick){axis!==AXIS_V&&axis!==AXIS_H&&(axis=AXIS_V);let opts=axis===AXIS_H?{moveby:`left`,readby:`scrollLeft`,size:`width`,scroll:`scrollWidth`,client:`clientWidth`,overflow:`overflow-x`}:{moveby:`top`,readby:`scrollTop`,size:`height`,scroll:`scrollHeight`,client:`clientHeight`,overflow:`overflow-y`},forced=!1,parent,fullsize,size$3,node=link.dom?.parentNode;function setParent(node$1){if(!node$1)return;if(thumbstick){let noNav=node$1.attributes.getNamedItem(SCROLL_ATTR);if(noNav&&noNav.value===`false`)return}let styles$1=document.defaultView.getComputedStyle(node$1,null);(styles$1[opts.overflow]===`auto`||styles$1[opts.overflow]===`scroll`)&&(fullsize=node$1[opts.scroll],size$3=node$1[opts.client],fullsize>size$3&&(parent=node$1))}for(;node&&node.isConnected&&node.nodeType===Node.ELEMENT_NODE&&!((!thumbstick||node.attributes.getNamedItem(`bng-nav-scroll`))&&(setParent(node),parent));)node=node.parentNode;if(!parent){let elems$2=document.querySelectorAll(`[${SCROLL_FORCE_ATTR}]`);for(let elem of elems$2)if(setParent(elem),parent){forced=!0;break}}if(scrollCatch(axis,!!parent),drawScrollHint(),!parent)return null;let start=0,styles=document.defaultView.getComputedStyle(parent,null);[`relative`,`absolute`,`static`,`fixed`].includes(styles.position)&&(start+=parent.getBoundingClientRect()[opts.moveby]);let pad=link.rect?Math.max(size$3/4,link.rect[opts.size]):size$3/4,bounds=[start+pad,start+size$3-pad];return{parent,moveby:opts.moveby,readby:opts.readby,bounds,fullsize,start:0,finish:fullsize-size$3,forced}}function scrollFix(link,direction$1){let area=findScrollable(link,direction$1===DIR.UP||direction$1===DIR.DOWN?AXIS_V:AXIS_H);if(!area){document.querySelector(`[bng-nav-scroll], [bng-nav-scroll-force]`)&&findScrollable(link,direction$1===DIR.LEFT||direction$1===DIR.RIGHT?AXIS_V:AXIS_H);return}if(area.forced)return;let mov=-1;direction$1===DIR.UP||direction$1===DIR.DOWN?link.rect.toparea.bounds[1]&&(mov=Math.min(area.parent.scrollTop-area.bounds[1]+link.rect.bottom,area.finish)):link.rect.leftarea.bounds[1]&&(mov=Math.min(area.parent.scrollLeft-area.bounds[1]+link.rect.right,area.finish)),mov>-1&&area.parent.scrollTo({[area.moveby]:mov,behavior:`instant`})}function fireKey(element,direction$1){let key=DIR_KEYS[direction$1];key&&dispatchKey(key,element)}function handleUINavEvent(e,restrictTo=void 0){let d=e.detail,handled=!1;if(d.name in UI_SCALAR_EVENT_ACTIONS){let axis=UI_SCALAR_EVENT_ACTIONS[d.name],value=d.value;if(value!==0&&THUMBSTICK_DEADZONE>0&&Math.abs(value)>THUMBSTICK_DEADZONE){let adjustedValue=(axis===AXIS_V?-value:value)>0?1:-1,direction$1=axis===AXIS_H?adjustedValue>0?DIR.RIGHT:DIR.LEFT:adjustedValue>0?DIR.DOWN:DIR.UP;lastScalarValue[axis]!==adjustedValue&&(lastScalarValue[axis]=adjustedValue,navigate(collectRects(direction$1,restrictTo),direction$1))}else lastScalarValue[axis]=0;handled=!0}if(d.name in UI_NAV_EVENT_ACTIONS){let action=UI_NAV_EVENT_ACTIONS[d.name];switch(action){case`up`:case`down`:case`left`:case`right`:d.value==1&&(navigate(collectRects(action,restrictTo),action),handled=!0);break;case`confirm`:if(d.value==1){let activeEl=document.activeElement;isNavigable$1(activeEl)&&(typeof activeEl.click==`function`?activeEl.click():activeEl.dispatchEvent(new CustomEvent(`click`))),handled=!0}break}}else if(d.name in UI_SCROLL_EVENT_ACTIONS){let axis=UI_SCROLL_EVENT_ACTIONS[d.name];navigateScroll(axis,d.value),handled=isScrollListening(axis)}handled&&e.preventDefault()}var SCOPED_NAV_ATTR$1=`bng-scoped-nav`,UI_NAV_ACTION_GROUP$1=`UINavActions`,GAME_UI_NAVIGATION_EVENT$1=`UINavigation`,GAME_UI_NAV_MAP_ENABLED_EVENT$1=`MenuActionMapEnabled`,DOM_UI_NAVIGATION_EVENT$1=`ui_nav`,UI_SCOPE_ATTR$3=`bng-ui-scope`,UI_EVENT_ATTR$1=`ui-nav-event`,ACTIONS_BY_UI_EVENT$1={focus_u:`menu_item_up`,focus_r:`menu_item_right`,focus_d:`menu_item_down`,focus_l:`menu_item_left`,menu:`toggleMenues`,back:`menu_item_back`,details:`cui_details`,advanced:`cui_advanced`,camera:`cui_camera`,logs:`cui_logs`,tab_l:`menu_tab_left`,tab_r:`menu_tab_right`,modifier:`cui_modifier`,action_4:`cui_action_4`,focus_ud:`menu_item_focus_ud`,focus_lr:`menu_item_focus_lr`,rotate_h_cam:`menu_item_radial_right_x`,rotate_v_cam:`menu_item_radial_right_y`,ok:`menu_item_select`,cancel:`cui_cancel`,action_2:`cui_action_2`,action_3:`cui_action_3`,gameplay_interact:`cui_gameplay_interact`,context:`cui_context`},UI_EVENTS_BY_ACTION$1=Object.assign({},...Object.entries(ACTIONS_BY_UI_EVENT$1).map(([k,v])=>({[v]:k}))),UI_EVENTS$1={focus_u:`focus_u`,focus_r:`focus_r`,focus_d:`focus_d`,focus_l:`focus_l`,pause:`pause`,menu:`menu`,back:`back`,details:`details`,advanced:`advanced`,camera:`camera`,logs:`logs`,tab_l:`tab_l`,tab_r:`tab_r`,modifier:`modifier`,zoom_out:`zoom_out`,zoom_in:`zoom_in`,subtab_l:`subtab_l`,subtab_r:`subtab_r`,center_cam:`center_cam`,action_4:`action_4`,move_ud:`move_ud`,move_lr:`move_lr`,focus_ud:`focus_ud`,focus_lr:`focus_lr`,rotate_h_cam:`rotate_h_cam`,rotate_v_cam:`rotate_v_cam`,ok:`ok`,cancel:`cancel`,action_2:`action_2`,action_3:`action_3`,gameplay_interact:`gameplay_interact`,context:`context`},UI_EVENT_GROUPS$1={focusMove:[UI_EVENTS$1.focus_u,UI_EVENTS$1.focus_d,UI_EVENTS$1.focus_l,UI_EVENTS$1.focus_r],focusMoveScalar:[UI_EVENTS$1.focus_ud,UI_EVENTS$1.focus_lr],moveScalar:[UI_EVENTS$1.move_ud,UI_EVENTS$1.move_lr],navigation:[UI_EVENTS$1.focus_u,UI_EVENTS$1.focus_d,UI_EVENTS$1.focus_l,UI_EVENTS$1.focus_r,UI_EVENTS$1.focus_ud,UI_EVENTS$1.focus_lr,UI_EVENTS$1.move_ud,UI_EVENTS$1.move_lr],allEvents:Object.keys(ACTIONS_BY_UI_EVENT$1)},setFilteredEvents=(...events$3)=>{clearFilteredEvents();let actionsToFilter=[...new Set(events$3.flat(1/0))].map(event=>ACTIONS_BY_UI_EVENT$1[event]);Lua_default.extensions.core_input_actionFilter.setGroup(UI_NAV_ACTION_GROUP$1,actionsToFilter),Lua_default.extensions.core_input_actionFilter.addAction(0,UI_NAV_ACTION_GROUP$1,!0)};setFilteredEvents.allExcept=(...events$3)=>{let eventsToNotFilter=[...new Set(events$3.flat(1/0))];setFilteredEvents(UI_EVENT_GROUPS$1.allEvents.filter(ev=>!eventsToNotFilter.includes(ev)))};var clearFilteredEvents=()=>{Lua_default.extensions.core_input_actionFilter.addAction(0,UI_NAV_ACTION_GROUP$1,!1),Lua_default.extensions.core_input_actionFilter.setGroup(UI_NAV_ACTION_GROUP$1,[])};const clamp=(val,min$1,max$1)=>Math.min(Math.max(val,min$1),max$1),round=(val,step=1)=>{if(val===void 0)throw Error(`The function at least needs a value`);return Math.round(val/step+2**-52)*step},roundDec=(val,dec=0)=>{if(val===void 0)throw Error(`The function at least needs a value`);if(dec>15)throw Error(`Floating point won't be precise after 15th decimal`);if(val===0)return 0;if(!Number.isInteger(dec))throw Error(`Decimal point must be an integer`);let pow=10**dec;return Math.round(val*pow+2**-52)/pow},roundDecSample=(val,sample=0)=>{let dec=getDecimalPlaces(sample);return dec===0?round(val):roundDec(val,dec)},getDecimalPlaces=num=>{if(Number.isInteger(num)||!Number.isFinite(num))return 0;let dec=0;for(;!Number.isInteger(num)&&Number.isFinite(num)&&(num*=10,dec++,!(dec>15)););return dec};var UIUnits_default=class{uiUnits={uiUnitLength:`metric`,uiUnitTemperature:`f`,uiUnitWeight:`lb`,uiUnitConsumptionRate:`imperial`,uiUnitTorque:`imperial`,uiUnitEnergy:`imperial`,uiUnitDate:`us`,uiUnitPower:`bhp`,uiUnitVolume:`gal`,uiUnitPressure:`psi`};mapping={length:`uiUnitLength`,speed:`uiUnitLength`,temperature:`uiUnitTemperature`,weight:`uiUnitWeight`,consumptionRate:`uiUnitConsumptionRate`,torque:`uiUnitTorque`,energy:`uiUnitEnergy`,date:`uiUnitDate`,power:`uiUnitPower`,volume:`uiUnitVolume`,pressure:`uiUnitPressure`,lengthMinor:`uiUnitLength`};userSettings={uiLanguage:`en-US`};eventBus={};api={};constructor(eventBus$1,api$1){this.eventBus=eventBus$1,this.api=api$1,this.beamBucks=this.beamBucks.bind(this),this.eventBus.on(`SettingsChanged`,data=>this.onSettingsChanged(data)),api$1.engineLua(`settings.notifyUI()`)}onSettingsChanged(data){for(let name in this.uiUnits)data.values[name]!==void 0&&(this.uiUnits[name]=data.values[name]);for(let name in this.userSettings)data.values[name]!==void 0&&(this.userSettings[name]=data.values[name].replace(/_/g,`-`))}buildString(func,val,numDecs,system){if([`division`,`buildString`,`date`].includes(func)||typeof this[func]!=`function`)throw Error(`Cannot use this function to build a string`);this.mapping[func]!==void 0&&system===void 0&&(system=this.uiUnits[this.mapping[func]]);let helper=this[func](val,system);return helper===null?``:typeof helper.val==`string`?helper.val:typeof helper.val==`number`?(helper.val<0&&helper.val>-(10**-numDecs)&&(helper.val=0),Intl.NumberFormat(this.userSettings.uiLanguage,{style:`decimal`,minimumFractionDigits:numDecs,maximumFractionDigits:numDecs}).format(helper.val)+` `+helper.unit):``}division(func1,func2,val1,val2,numDecs,system1,system2){let unsupported=[`division`,`weightPower`,`buildString`,`date`];if(unsupported.includes(func1)||typeof this[func1]!=`function`||unsupported.includes(func2)||typeof this[func2]!=`function`)throw Error(`Cannot use these functions`);let helper1=this[func1](val1,system1),helper2=this[func2](val2,system2);if(helper1!==null&&helper2!==null){let newVal=helper1.val/helper2.val;return{val:numDecs===void 0?newVal:roundDec(newVal,numDecs),unit:`${helper1.unit}/${helper2.unit}`}}else return console.error(`got null`,arguments),null}weightPower(x){let helper=this.division(`weight`,`power`,1,1);return helper===null?null:{val:helper.val*x,unit:helper.unit}}length(meters,system=this.uiUnits.uiUnitLength){if(system===`metric`)return meters<.01?{val:meters*1e3,unit:`mm`}:meters<1?{val:meters*100,unit:`cm`}:meters<1e3?{val:meters,unit:`m`}:{val:meters*.001,unit:`km`};if(system===`imperial`){let yd=meters*1.0936;return yd<1?{val:yd*36,unit:`in`}:yd<3?{val:yd*3,unit:`ft`}:{val:yd*568182e-9,unit:`mi`}}return null}distance=this.length;lengthMinor(meters,system=this.uiUnits.uiUnitLength){return system===`metric`?{val:meters*1,unit:`m`}:system===`imperial`?{val:meters*1.0936*3,unit:`ft`}:null}area(squareMeters,system=this.uiUnits.uiUnitLength){if(system===`metric`)return squareMeters<1e3?{val:squareMeters,unit:`sq m`}:{val:squareMeters*.001*.001,unit:`sq km`};if(system===`imperial`){let sqrYards=squareMeters*1.0936*1.0936;return sqrYards<1760?{val:sqrYards,unit:`sq yd`}:{val:sqrYards*568182e-9*568182e-9,unit:`sq mi`}}return null}temperature(x,system=this.uiUnits.uiUnitTemperature){switch(system){case`c`:return{val:x,unit:`°C`};case`f`:return{val:x*1.8+32,unit:`°F`};case`k`:return{val:x+273.15,unit:`K`};default:return null}}volume(x,system=this.uiUnits.uiUnitVolume){switch(system){case`l`:return{val:x,unit:`L`};case`gal`:return{val:x*.2642,unit:`gal`};default:return null}}pressure(x,system=this.uiUnits.uiUnitPressure){switch(system){case`inHg`:return{val:x*.2953,unit:`in.Hg`};case`bar`:return{val:x*.01,unit:`Bar`};case`psi`:return{val:x*.145038,unit:`PSI`};case`kPa`:return{val:x,unit:`kPa`};default:return null}}weight(x,system=this.uiUnits.uiUnitWeight){switch(system){case`kg`:return{val:x,unit:`kg`};case`lb`:return{val:2.20462262*x,unit:`lbs`};default:return null}}consumptionRate(x,system=this.uiUnits.uiUnitConsumptionRate){switch(system){case`metric`:return{val:1e5*x>5e4?`n/a`:1e5*x,unit:`L/100km`};case`imperial`:return{val:x===0?0:235*1e-5/x,unit:`MPG`};default:return null}}speed(x,system=this.uiUnits.uiUnitLength){switch(system){case`metric`:return{val:3.6*x,unit:`km/h`};case`imperial`:return{val:2.23693629*x,unit:`mph`};default:return null}}power(x,system=this.uiUnits.uiUnitPower){switch(system){case`kw`:return{val:.735499*x,unit:`kW`};case`hp`:return{val:x,unit:`PS`};case`bhp`:return{val:.98632*x,unit:`bhp`};default:return null}}torque(x,system=this.uiUnits.uiUnitTorque){switch(system===`metric`?system=`kg`:system===`imperial`&&(system=`lb`),system){case`kg`:return{val:x,unit:`Nm`};case`lb`:return{val:.7375621495*x,unit:`lb-ft`};default:return null}}energy(x,system=this.uiUnits.uiUnitEnergy){switch(system===`metric`?system=`j`:system===`imperial`&&(system=`ft lb`),system){case`j`:return{val:x,unit:`J`};case`ft lb`:return{val:.7375621495*x,unit:`ft lb`};default:return null}}date(x,system=this.uiUnits.uiUnitDate){switch(system){case`ger`:return x.toLocaleDateString(`de-DE`);case`uk`:return x.toLocaleDateString(`en-GB`);case`us`:return x.toLocaleDateString(`en-US`);default:return null}}beamBucks(x){return Intl.NumberFormat(this.userSettings.uiLanguage,{style:`decimal`,maximumFractionDigits:2,minimumFractionDigits:2}).format(+x)}},lite_default=class{constructor(){this.processing=!1,this.pending=0,this.finishCallback=null,this.angularRootScope=window.globalAngularRootScope,this.angularTimeout=null,this.angularTimeoutRetry=null,this.angularTimeoutWarned=!1,this.safetyTimeout=2e3,this.safetyTimer=null,this.warned=!1}setAngularRootScope(rootScope){this.angularRootScope=rootScope,this.angularTimeout=null,this.angularTimeoutRetry&&=(clearTimeout(this.angularTimeoutRetry),null)}getAngularTimeout(){if(this.angularTimeout!==null)return typeof this.angularTimeout==`function`?this.angularTimeout:null;let code;this.angularTimeoutRetry&&(code=`retry`,clearTimeout(this.angularTimeoutRetry));try{if(window.angular!==void 0&&window.angular.element){let injector=window.angular.element(document).injector();if(injector)return this.angularTimeout=injector.get(`$timeout`),this.angularTimeoutWarned&&console.log(`Stream Coordinator: Angular $timeout service resolved after retry`),this.angularTimeout;code=`no-injector`}else code=`no-angular`}catch{code=`error`}return this.angularTimeout=!1,this.angularTimeoutRetry||=setTimeout(()=>{this.angularTimeout||=null},5e3),console.warn(`Stream Coordinator: Angular $timeout service not available (${code})`),this.angularTimeoutWarned=!0,null}beforeBroadcast(){this.processing||(this.processing=!0,this.finishCallback=null,this.pending=0,this.safetyTimer&&clearTimeout(this.safetyTimer),this.safetyTimer=setTimeout(()=>{this.processing&&this.forceComplete()},this.safetyTimeout))}afterBroadcast(callback){if(callback&&typeof callback==`function`?this.finishCallback=()=>{this.finishCallback=void 0,Promise.resolve().then(callback)}:this.finishCallback=void 0,!this.processing){this.finishCallback?.();return}this.startDeferredWork()}startDeferredWork(){this.pending=0;let angularTimeout=this.getAngularTimeout();angularTimeout&&(this.angularRootScope||=window.globalAngularRootScope,this.angularRootScope&&(this.pending++,angularTimeout(()=>this.onOperationComplete(),0))),window.Vue?.nextTick&&(this.pending++,window.Vue.nextTick(()=>this.onOperationComplete())),this.pending===0&&(this.warned||(this.warned=!0,console.warn(`Stream Coordinator: No Angular $timeout() nor Vue.nextTick() detected, using only Promise microtask instead`)),this.complete())}onOperationComplete(){this.processing&&(this.pending--,this.pending<=0&&this.complete())}complete(){this.processing&&(this.safetyTimer&&=(clearTimeout(this.safetyTimer),null),Promise.resolve().then(()=>{this.processing=!1,window.beamng?.uiFrameCallback?.(),this.finishCallback?.()}))}forceComplete(){this.complete()}},dependencies,bridge$3;const useBridge=()=>{if(bridge$3)return bridge$3;if(window.bridge)return bridge$3=window.bridge;let events$3=new dependencies.Emitter,coordinator=new lite_default(events$3);Hooks_default.setStreamCoordinator(coordinator);let api$1=dependencies.overrideAPI||new BeamNGAPI_default(events$3,dependencies.beamng);return bridge$3={api:api$1,lua:Lua_default,events:events$3,streams:new StreamManager_default(api$1),coordinator,hooks:Hooks_default,units:new UIUnits_default(events$3,api$1),gameBlurrer:GameBlurrer_default,beamNG:dependencies.beamng},bridge$3},setBridgeDependencies=deps$1=>dependencies=deps$1;var DEBUG=1,INFO=2,WARN=4,ERROR=8,consoleLogMethods={[DEBUG]:`log`,[INFO]:`info`,[WARN]:`warn`,[ERROR]:`error`},consoleLogProvider={log(level$1,...msgs){level$1 in consoleLogMethods&&console[consoleLogMethods[level$1]](...msgs)}},level=14,providersInUse=[consoleLogProvider],STACK_TRACE=Symbol(`Stack trace`),_stackTrace=()=>`
`+Error().stack,_log=(lvl,...msgs)=>{level&lvl&&(msgs=msgs.map(msg=>msg===STACK_TRACE?_stackTrace():msg),providersInUse.forEach(p$1=>p$1.log&&p$1.log(lvl,...msgs)))},_assert=async(lvl,cond,...msgs)=>{level&lvl&&(cond?cond instanceof Promise?cond.then(res=>!res&&_log(lvl,...msgs)):typeof cond==`function`&&!await cond()&&_log(lvl,...msgs):_log(lvl,...msgs))},logger={DEBUG,INFO,WARN,ERROR,setProviders:(...providers)=>providersInUse=providers,set level(val){return level=val},get level(){return level},STACK_TRACE,log:(...msgs)=>_log(DEBUG,...msgs),debug:(...msgs)=>_log(DEBUG,...msgs),info:(...msgs)=>_log(INFO,...msgs),warn:(...msgs)=>_log(WARN,...msgs),error:(...msgs)=>_log(ERROR,...msgs),assert:(cond,...msgs)=>_assert(DEBUG,cond,...msgs),assertDebug:(cond,...msgs)=>_assert(DEBUG,cond,...msgs),assertInfo:(cond,...msgs)=>_assert(INFO,cond,...msgs),assertWarn:(cond,...msgs)=>_assert(WARN,cond,...msgs),assertError:(cond,...msgs)=>_assert(ERROR,cond,...msgs)};window.BNG_Logger=logger;var logger_default=logger;function warn(msg,err){typeof console<`u`&&(console.warn(`[intlify] `+msg),err&&console.warn(err.stack))}var inBrowser=typeof window<`u`,makeSymbol=(name,shareable=!1)=>shareable?Symbol.for(name):Symbol(name),generateFormatCacheKey=(locale,key,source)=>friendlyJSONstringify({l:locale,k:key,s:source}),friendlyJSONstringify=json=>JSON.stringify(json).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`).replace(/\u0027/g,`\\u0027`),isNumber=val=>typeof val==`number`&&isFinite(val),isRegExp=val=>toTypeString(val)===`[object RegExp]`,isEmptyObject=val=>isPlainObject(val)&&Object.keys(val).length===0,assign$1=Object.assign,_create=Object.create,create=(obj=null)=>_create(obj),_globalThis,getGlobalThis=()=>_globalThis||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:create();function escapeHtml(rawText){return rawText.replace(/&/g,`&`).replace(//g,`>`).replace(/"/g,`"`).replace(/'/g,`'`).replace(/\//g,`/`).replace(/=/g,`=`)}function escapeAttributeValue(value){return value.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,`&`).replace(/"/g,`"`).replace(/'/g,`'`).replace(//g,`>`)}function sanitizeTranslatedHtml(html){return html=html.replace(/(\w+)\s*=\s*"([^"]*)"/g,(_,attrName,attrValue)=>`${attrName}="${escapeAttributeValue(attrValue)}"`),html=html.replace(/(\w+)\s*=\s*'([^']*)'/g,(_,attrName,attrValue)=>`${attrName}='${escapeAttributeValue(attrValue)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(html)&&(html=html.replace(/(\s+)(on)(\w+\s*=)/gi,`$1on$3`)),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(pattern=>{html=html.replace(pattern,`$1javascript:`)}),html}var hasOwnProperty=Object.prototype.hasOwnProperty;function hasOwn(obj,key){return hasOwnProperty.call(obj,key)}var isArray$1=Array.isArray,isFunction=val=>typeof val==`function`,isString=val=>typeof val==`string`,isBoolean=val=>typeof val==`boolean`,isObject=val=>typeof val==`object`&&!!val,isPromise=val=>isObject(val)&&isFunction(val.then)&&isFunction(val.catch),objectToString=Object.prototype.toString,toTypeString=value=>objectToString.call(value),isPlainObject=val=>toTypeString(val)===`[object Object]`,toDisplayString$1=val=>val==null?``:isArray$1(val)||isPlainObject(val)&&val.toString===objectToString?JSON.stringify(val,null,2):String(val);function join(items$2,separator=``){return items$2.reduce((str,item,index)=>index===0?str+item:str+separator+item,``)}var isNotObjectOrIsArray=val=>!isObject(val)||isArray$1(val);function deepCopy(src,des){if(isNotObjectOrIsArray(src)||isNotObjectOrIsArray(des))throw Error(`Invalid value`);let stack$2=[{src,des}];for(;stack$2.length;){let{src:src$1,des:des$1}=stack$2.pop();Object.keys(src$1).forEach(key=>{key!==`__proto__`&&(isObject(src$1[key])&&!isObject(des$1[key])&&(des$1[key]=Array.isArray(src$1[key])?[]:create()),isNotObjectOrIsArray(des$1[key])||isNotObjectOrIsArray(src$1[key])?des$1[key]=src$1[key]:stack$2.push({src:src$1[key],des:des$1[key]}))})}}function createPosition(line,column,offset$2){return{line,column,offset:offset$2}}function createLocation(start,end,source){let loc={start,end};return source!=null&&(loc.source=source),loc}var CompileErrorCodes={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16},COMPILE_ERROR_CODES_EXTEND_POINT=17,errorMessages={[CompileErrorCodes.EXPECTED_TOKEN]:`Expected token: '{0}'`,[CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]:`Invalid token in placeholder: '{0}'`,[CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:`Unterminated single quote in placeholder`,[CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]:`Unknown escape sequence: \\{0}`,[CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]:`Invalid unicode escape sequence: {0}`,[CompileErrorCodes.UNBALANCED_CLOSING_BRACE]:`Unbalanced closing brace`,[CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]:`Unterminated closing brace`,[CompileErrorCodes.EMPTY_PLACEHOLDER]:`Empty placeholder`,[CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]:`Not allowed nest placeholder`,[CompileErrorCodes.INVALID_LINKED_FORMAT]:`Invalid linked format`,[CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]:`Plural must have messages`,[CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]:`Unexpected empty linked modifier`,[CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]:`Unexpected empty linked key`,[CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]:`Unexpected lexical analysis in token: '{0}'`,[CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]:`unhandled codegen node type: '{0}'`,[CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]:`unhandled mimifier node type: '{0}'`};function createCompileError(code,loc,options={}){let{domain,messages,args}=options,msg=code,error=SyntaxError(String(msg));return error.code=code,loc&&(error.location=loc),error.domain=domain,error}function defaultOnError(error){throw error}var CHAR_SP=` `,CHAR_CR=`\r`,CHAR_LF=`
@/lua/ge/extensions/editor/sensorConfigurationEditor.lua
          core_camera.setByName(0, "orbit", false)
          be:enterVehicle(0, scenetree.findObject(vehicle.vid))
          if i ~= selectedVehicleIdx then
@/lua/ge/extensions/editor/api/gui.lua
  --TODO: remove any Canvas usage, maybe use imgui
  if not canvasObject then canvasObject = scenetree.findObject("Canvas") end
  return canvasObject:screenToClient(pt2i)
@/lua/ge/client/postFx/smaa.lua

local smaaStateBlock = scenetree.findObject("SMAA_StateBlock")
if not smaaStateBlock then
if not smaaStateBlock then
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  smaaStateBlock = createObject("GFXStateBlockData")

local smaaEdgeDetectionShaderData = scenetree.findObject("SMAA_EdgeDetectionShaderData")
if not smaaEdgeDetectionShaderData then

local smaaBlendingWeightShaderData = scenetree.findObject("SMAA_BlendingWeightShaderData")
if not smaaBlendingWeightShaderData then

local smaaNeighborhoodBlendingShaderData = scenetree.findObject("SMAA_NeighborhoodBlendingShaderData")
if not smaaNeighborhoodBlendingShaderData then
  -- log('I', 'smaaPostEffect', 'onEnabled called for smaaPostEffect')
  local fxaa_postfx = scenetree.findObject("FXAA_PostEffect")
  if fxaa_postfx then
smaaPostEffectCallbacks.preProcess = function()
  local smaaPostEffect = scenetree.findObject("SMAA_PostEffect")
  if smaaPostEffect then
      smaaPostEffect:setShaderMacro("SMAA_RT_METRICS", rtResolution)
      local smaaPostEffect1 = scenetree.findObject("SMAA_PostEffect1")
      if smaaPostEffect1 then
      end
      local smaaPostEffect2 = scenetree.findObject("SMAA_PostEffect2")
      if smaaPostEffect2 then

local smaaPostEffect = scenetree.findObject("SMAA_PostEffect")
if not smaaPostEffect then
@/lua/ge/extensions/gameplay/garageMode.lua
    local spawnPointName = levelInfo.spawnPoints[1].objectname
    local spawnPoint = scenetree.findObject(spawnPointName)
    if spawnPoint then
local function hideGroup(groupName, hidden)
  local group = scenetree.findObject(groupName)
  if group then setHiddenRec(group, hidden) end
@/lua/ge/extensions/scenario/busdriver.lua
  exitTggBeforeTimer = false
  local playerVehicle = scenetree.findObject(playerInstance)
  if playerVehicle then
    local st = computeStats(stats)
    local playerVehicle = scenetree.findObject(playerInstance)
    statistics_statistics.initialiseArbitraryStat(   "busDamage",        "ui.stats.damage", playerVehicle, playerInstance, 100, 100)
  busConfig = scenario_scenarios.getScenario().busdriver
  local playerVehicle = scenetree.findObject(playerInstance)
  if playerVehicle then
      for k,v in pairs(nameMarkers) do
        local mk = scenetree.findObject(v)
        if mk == nil then
  if running then
    local playerVehicleID = scenetree.findObject(playerInstance):getID()
    if vehicleID == playerVehicleID and damaged then
    -- stop distance rating
    local busStop = scenetree.findObject(nextStop[1])
    local busStopPos = vec3(busStop:getPosition())

  local trigger = scenetree.findObject(nextStop[1])
  if not trigger.bidirectional and not isRightNode(vec3Destination, firstDest, secondDest) then
    local yVec = tr*vec3(0,1,0)
    local trigger = scenetree.findObject(nextStop[1])
    trigger = Sim.upcast(trigger)
@/lua/ge/extensions/campaign/exploration.lua
    if FS:fileExists(prefabPath) then
      if not scenetree.findObject(prefabName) then
        local prefabObj = spawnPrefab(prefabName, prefabPath, '0 0 0', '0 0 1', '1 1 1')

  local ExplorationMissionUI = scenetree.findObject("ExplorationMissionUIActionMap")
  if ExplorationMissionUI then
@/lua/ge/extensions/trackbuilder/trackBuilder.lua
    if saveSettings.azimuthValue[0] ~=0  then
      -- local sky = scenetree.findObject("sunsky")
    --  local azi= sky:getAzimuth()
  for i, matName in pairs(materials.matNames) do
    table.insert( materialSettings.materials.center, scenetree.findObject(matName .. 'center') )
    table.insert( materialSettings.materials.border, scenetree.findObject(matName .. 'border') )
    table.insert( materialSettings.materials.center, scenetree.findObject(matName .. 'center') )
    table.insert( materialSettings.materials.border, scenetree.findObject(matName .. 'border') )
    obstacleMatNames[#obstacleMatNames+1] = matName..'border'
@/lua/ge/extensions/editor/createObjectTool.lua

  local grp = scenetree.findObject("PlayerDropPoints")

  local grp = scenetree.findObject("ObserverDropPoints")
  registerBuildFuncField(obj:getClassName(), "emitter", 0, "BNGP_1")
  obj:setEmitterDataBlock(scenetree.findObject("BNGP_1"))
  return true
@/lua/ge/extensions/core/cameraModes/observer.lua

  local cam = scenetree.findObject(self.cameraName)
  if not cam then
  if self.targetOverride then
    local targetObject = scenetree.findObject(self.targetOverride)
    if targetObject then
@/lua/common/jbeam/loader.lua
  if vmType == 'game' then
    vehicleObj = scenetree.findObject(objID)
    if not vehicleObj then
@/lua/ge/extensions/flowgraph/nodes/gfx/dof.lua
function C:updateSettings()
  local dofPostEffect = scenetree.findObject("DOFPostEffect")
  if dofPostEffect and dofPostEffect.updateDOFSettings then
@/lua/ge/client/postFx/turbulence.lua

local pfxTurbulenceStateBlock = scenetree.findObject("PFX_TurbulenceStateBlock")
if not pfxTurbulenceStateBlock then
if not pfxTurbulenceStateBlock then
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  pfxTurbulenceStateBlock = createObject("GFXStateBlockData")

local pfxTurbulenceShader = scenetree.findObject("PFX_TurbulenceShader")
if not pfxTurbulenceShader then

local turbulenceFx = scenetree.findObject("TurbulenceFx")
if not turbulenceFx then
@/lua/ge/extensions/core/vehicle/manager.lua
  if not vehicleObj or not _vehicleBundle then
    vehicleObj = scenetree.findObject(objID)
    if not vehicleObj then return end
  profilerPushEvent('spawn')
  local vehicleObj = scenetree.findObject(objID)
  if not vehicleObj then
@/lua/ge/extensions/core/groundMarkerArrows.lua
  -- Clean up the pool if it exists
  local arrowPool = scenetree.findObject("arrowPool")
  if arrowPool then
local function createArrowPool(floatingArrowColor)
  local group = scenetree.findObject("arrowPool")
  if not group then
@/lua/ge/extensions/editor/terrainAndRoadImporter.lua
  -- Remove any folders.
  local folder = scenetree.findObject(folderName)
  if folder then
@/lua/ge/extensions/util/resaveMaterials.lua
  for _, objName in ipairs(objs) do
    local o = scenetree.findObject(objName)
    if o then
@/lua/ge/extensions/scenario/positionGoal.lua
  for _,instance in ipairs(M.instances) do
    local endobj = scenetree.findObject(instance.value.endPoint)
    if not endobj then
@/lua/ge/map.lua
  for _, nodeName in ipairs(scenetree.findClassObjects('BeamNGWaypoint')) do
    local o = scenetree.findObject(nodeName)
    if o and (not o.excludeFromMap) and mapNodes[nodeName] == nil then
    for _, decalRoadName in ipairs(scenetree.findClassObjects('DecalRoad')) do
      local road = scenetree.findObject(decalRoadName)
      if road and road.drivability > 0 then

  local terrain = scenetree.findObject(scenetree.findClassObjects('TerrainBlock')[1])
  local terrainPosition = vec3(terrain:getPosition())

  local v = scenetree.findObject(args.subjectName)
  local nextTrigger = scenetree.findObject(triggerName .. (triggerNum + 1))
  local v = scenetree.findObject(args.subjectName)
  local nextTrigger = scenetree.findObject(triggerName .. (triggerNum + 1))
  if args.subject and nextTrigger then
  -- Wrapper function for spawn.safeTeleport()
  local veh = scenetree.findObject(vehId)
  --local veh = getObjectByID(id)
@/lua/ge/extensions/editor/forestEditor.lua
    for _, id in ipairs(objNames) do
      local obj = scenetree.findObject(id)
      if obj then
    for _, id in ipairs(objNames) do
      local obj = scenetree.findObject(id)
      if obj then
  for k, forestItemDataId in ipairs(forestItemDataNames) do
    local cobj = scenetree.findObject(forestItemDataId)
    if cobj then
  -- ForestBrushGroup
  var.forestBrushGroup = scenetree.findObject("ForestBrushGroup")
  if not var.forestBrushGroup then
  for _, id in ipairs(forestBrushElementIds) do
    local fbe = scenetree.findObject(id)
    if fbe then
  --TODO: should we do this every frame ?
  var.forestBrushGroup = scenetree.findObject("ForestBrushGroup")

          local forestItemData = scenetree.findObject(var.selectedForestItemDatas[1].id)
          if forestItemData then
@/lua/ge/spawn.lua
  local spawnDatablock = "default_vehicle"
  local dataBlock = scenetree.findObject(spawnDatablock)
  local i = 0
  while scenetree.findObject(vehicleName) do
    vehicleName = "clone" .. tostring(i)
  if defaultSpawnPoint then
    local spawnPoint = scenetree.findObject(defaultSpawnPoint)
    if spawnPoint then
  for i,v in pairs(spawnDefaultGroups) do
    if scenetree.findObject(spawnDefaultGroups[i]) then
      local spawngroupPoint = scenetree.findObject(spawnDefaultGroups[i]):getRandom()
    if scenetree.findObject(spawnDefaultGroups[i]) then
      local spawngroupPoint = scenetree.findObject(spawnDefaultGroups[i]):getRandom()
      if not spawngroupPoint then
  ]]
  local dps = scenetree.findObject("DefaultPlayerSpawnSphere")
  if dps then
  end
  playerSP.dataBlock = scenetree.findObject('SpawnSphereMarker')
  if spawnName == "player" then
  -- Set the control object to the default camera
  local cam = scenetree.findObject("gameCamera")
  if not cam then
    cam = createObject('Camera')
    cam.dataBlock = scenetree.findObject("Observer")
    cam:registerObject("gameCamera")
    ]]
    if spawnPoint.spawnDatablock and scenetree.findObject(spawnPoint.spawnDatablock) then
      spawnDatablock = spawnPoint.spawnDatablock
@/lua/ge/extensions/freeroam/specialTriggers.lua
      for _, o in ipairs(obj:getObjects()) do
        setState(tonumber(o) or scenetree.findObject(o):getID(), state)
      end
  for k, _ in pairs(triggers[key].objects) do
    if scenetree.findObject(k) then
      setGroupState(scenetree.findObject(k):getID(), state)
    if scenetree.findObject(k) then
      setGroupState(scenetree.findObject(k):getID(), state)
    end
  for k, v in pairs(triggers[key].objects) do
    local obj = scenetree.findObject(k)
    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
        if obj and v.stack > 0 then
          obj = scenetree.findObject(name)
          local delay = v.active and data.enterDelay or data.exitDelay
                    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
                        if o2 then
                          setState(tonumber(o2) or scenetree.findObject(o2):getID(), v.active)
                        end
                    if innerObjects[idx] then -- processes the next object
                      setState(tonumber(innerObjects[idx]) or scenetree.findObject(innerObjects[idx]):getID(), v.active)
                    end
@/lua/ge/client/postFx.lua

local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
if not pfxDefaultStateBlock then

local pfxDefaultBlendStateBlock = scenetree.findObject("PFX_DefaultBlitStateBlock")
if not pfxDefaultBlendStateBlock then

local pfxPassthruShader = scenetree.findObject("PFX_PassthruShader")
if not pfxPassthruShader then

local alFormatBlend = scenetree.findObject("AL_FormatBlit")
if not alFormatBlend then
  alFormatBlend.shader = "PFX_PassthruShader"
  alFormatBlend.stateBlock = scenetree.findObject("PFX_DefaultBlitStateBlock")
  alFormatBlend.texture = "$inTex"
    -- SSAO, HDR, LightRays, DOF
    local dof = scenetree.findObject("DOFPostEffect")
    local ssao = scenetree.findObject("SSAOPostFx")
    local dof = scenetree.findObject("DOFPostEffect")
    local ssao = scenetree.findObject("SSAOPostFx")
    local lightRay = scenetree.findObject("LightRayPostFX")
    local ssao = scenetree.findObject("SSAOPostFx")
    local lightRay = scenetree.findObject("LightRayPostFX")
    local hdrPostFx = scenetree.findObject("HDRPostFx")
    local lightRay = scenetree.findObject("LightRayPostFX")
    local hdrPostFx = scenetree.findObject("HDRPostFx")
@/lua/ge/extensions/editor/biomeTool.lua
local function populateForestBrushes()
  var.forestBrushGroup = scenetree.findObject("ForestBrushGroup")
  var.forestBrushes = {}
  for _, id in ipairs(forestBrushElementIds) do
    local fbe = scenetree.findObject(id)
    if fbe then
  for k, forestItemDataId in ipairs(forestItemDataNames) do
    local cobj = scenetree.findObject(forestItemDataId)
    if cobj then
@/lua/ge/extensions/ui/liveryEditor/editor.lua
local function toggleVehicleControls(enable)
  local commonActionMap = scenetree.findObject("VehicleCommonActionMap")
  if commonActionMap then

  local specificActionMap = scenetree.findObject("VehicleSpecificActionMap")
  if specificActionMap then
@/lua/ge/client/postFx/caustics.lua

local pfxCausticsStateBlock = scenetree.findObject("PFX_CausticsStateBlock")
if not pfxCausticsStateBlock then
if not pfxCausticsStateBlock then
  local pfxDefaultStateBlock = scenetree.findObject("PFX_DefaultStateBlock")
  pfxCausticsStateBlock = createObject("GFXStateBlockData")

local pfxCausticsShader = scenetree.findObject("PFX_CausticsShader")
if not pfxCausticsShader then

local causticsPFX = scenetree.findObject("CausticsPFX")
if not causticsPFX then
@/lua/ge/extensions/editor/vehicleBridgeTest.lua
        if im.Selectable1(vname.."##"..i) then
          vehId = scenetree.findObject(vname):getID()
        end
@/lua/ge/extensions/gameplay/markers/parkingMarker.lua
  self:clearObjects()
  iconRendererObj = scenetree.findObject(iconRendererName)
  if not iconRendererObj then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj and self.iconInfo then
  if self.iconRendererId then
    iconRendererObj = scenetree.findObject(self.iconRendererId)
    if iconRendererObj and self.iconId then