GE Lua Documentation

Press F to search!

setExtensionUnloadMode

Definition


-- @/lua/ge/main.lua:406

-- extensions' unloadMode is "auto" by default
--  - "auto": they may get unloaded when switching maps, loading a scenario, and other circumstances
--  - "manual": they will not get unloaded, instead the extension lifetime is controlled explicitly (manually)
function setExtensionUnloadMode(extension, unloadMode)
  local extName = extension
  if type(extension) == 'table' then
    extName = extension.__extensionName__
  end

  if type(extName) ~= 'string' then
    log('E','','Failed to set unload mode "'..dumps(unloadMode)..'" due to unrecognized extension: '..dumps(extension))
    return
  end

  if unloadMode == 'manual' then
    for _, v in ipairs(manualUnloadExtensions) do
      if v == extName then
        return
      end
    end
    table.insert(manualUnloadExtensions, extName)
  elseif unloadMode == 'auto' then
    for i, v in ipairs(manualUnloadExtensions) do
      if v == extName then
        table.remove(manualUnloadExtensions, i)
        return
     end
    end
  else
    log('E','','Failed to set unrecognised unload mode "'..dumps(unloadMode)..'" for extension: '..dumps(extension))
    return
  end
end

Callers

@/lua/ge/extensions/core/metrics.lua
local function onInit()
  setExtensionUnloadMode(M, "manual")
end
@/lua/ge/extensions/tech/impactgen/crashOutput.lua

  setExtensionUnloadMode(M, 'manual')
  extensions.load('tech/partAnnotations')
@/lua/ge/extensions/tech/partAnnotations.lua
M.onInit = function()
  setExtensionUnloadMode(M, 'manual')
end
@/lua/ge/extensions/telemetry/core.lua
  -- Always stay loaded to prevent errors, but operate as no-op when disabled
  setExtensionUnloadMode(M, "manual")
@/lua/ge/extensions/render/openxr.lua
local function onInit()
  setExtensionUnloadMode(M, "manual")
  onSettingsChanged()
@/lua/ge/extensions/tech/ultrasonicTest.lua
  log('I', 'ultrasonicTest', 'ultrasonicTest extension loaded')
  setExtensionUnloadMode(M, 'manual')
end
@/lua/ge/extensions/ui/apps/genericMissionData.lua
local M = {}
M.onInit = function() setExtensionUnloadMode(M, "manual") end
@/lua/common/extensions/networking/editorToolchain.lua
local function onInit()
  setExtensionUnloadMode(M, 'manual')
end
@/lua/ge/main.lua
  --   To load an extension on demand:               extensions.load("my_extension")
  --   To keep an extension loaded across levels:    M.onInit = function() setExtensionUnloadMode(M, "manual") end
  --   To unload an extension when no longer needed: M.myFunction = function() extensions.unload(M) end
  log('E','','== OUTDATED MOD CODE ==')
  log('E','',"registerCoreModule("..dumps(extensionName).." will be deprecated soon. Instead, replace with: setExtensionUnloadMode(M, \"manual\")")
  print(debug.tracesimple())
  extensionName = extensions.luaPathToExtName(extensionName)
  setExtensionUnloadMode(extensionName, "manual")
end
@/lua/ge/extensions/gameplay/discover.lua
local function onInit()
  setExtensionUnloadMode(M, "manual")
  local cmdArgs = Engine.getStartingArgs()
@/lua/ge/extensions/util/worker.lua
  log('I', 'util_worker', 'loaded')
  setExtensionUnloadMode(M, "manual")
  extensions.load('test/renderVehiclePreview')
@/lua/ge/extensions/util/compileImposters.lua
M.onInit = function()
  setExtensionUnloadMode(M, "manual")
end
@/lua/ge/extensions/career/career.lua
    for _, extension in ipairs(extensionFiles) do
      setExtensionUnloadMode(extensions.luaPathToExtName(extension), "manual")
    end
@/lua/ge/extensions/core/modmanager.lua
  extensions.load = function(module)
    log('W', 'initDB.modScript', 'Please make sure to call setExtensionUnloadMode(m, "manual") to have this extension loaded properly.')
    old_loadModule(module)
    old_loadModule(module)
    setExtensionUnloadMode(module, "manual")
  end
@/lua/ge/extensions/tech/capturePlayer.lua
local function onInit()
  setExtensionUnloadMode(M, 'manual')
@/lua/ge/extensions/tech/lidarTest.lua
  log('I', 'lidarTest', 'lidarTest extension loaded')
  setExtensionUnloadMode(M, 'manual')
end
@/lua/ge/extensions/core/commandhandler.lua
    extensions.load("core_loadMapCmd")
    setExtensionUnloadMode("core_loadMapCmd", "manual")
    core_loadMapCmd.set(jsondata, isStartingArg)
    extensions.load("core_snapshot")
    setExtensionUnloadMode("core_snapshot", "manual")
    core_snapshot.onSnapshotSchemeCommand(cmd, data, isStartingArg)
@/lua/ge/extensions/ui/apps/minimap/minimap.lua
M.onInit = function()
  setExtensionUnloadMode(M, "manual")
  M.onMinimapSettingsChanged()
@/lua/ge/extensions/tech/techCore.lua
M.onInit = function()
  setExtensionUnloadMode(M, 'manual')
@/lua/ge/extensions/ui/topBar.lua
  -- disable automatic unload
  setExtensionUnloadMode(M, "manual")
end
@/lua/ge/extensions/ui/apps/pointsBar.lua
local M = {}
M.onInit = function() setExtensionUnloadMode(M, "manual") end
@/lua/common/extensions/tech/techCapture.lua
local function onInit()
  setExtensionUnloadMode(M, 'manual')
end