panorama

Run Panorama JavaScript and call UI APIs from Lua.


Helpers

panorama.ready(): boolean

panorama.ready(): boolean
  • Returns if panorama is ready to use.

panorama.root(): string | nil

panorama.root(): string | nil
  • Returns the active root panel name.

panorama.find(panel_id: string): boolean

panorama.find(panel_id: string): boolean
  • Returns if a panel with the given id exists.

panorama.run(code: string, panel?: string, origin?: string): any

panorama.run(code: string, panel?: string, origin?: string): any
  • Runs JavaScript and returns the result.
  • Pass panel to run on a specific panel, otherwise the active root is used.
if secret.panorama.ready() then
    print(secret.panorama.run("return MyPersonaAPI.GetXuid();"))
end

Proxies

Indexing secret.panorama lets you call APIs directly:

local xuid = secret.panorama.MyPersonaAPI.GetXuid()

If the first key matches a panel id, calls are scoped to that panel:

secret.panorama.CSGOMainMenu.UiToolkitAPI -- etc

run, ready, find, and root stay as normal functions.

secret.listener.add("paint", "pano_once", function()
    if not secret.panorama.ready() then return end
    print(secret.panorama.MyPersonaAPI.GetXuid())
    secret.listener.remove("paint", "pano_once")
end)