Optional dependencies:
If you want to use the context menu functions you need to install this library:
LibCustomMenu
If you want to see the "outline" attribute at controls, and make the slash commands for outlining conrols work, you need to install
Circonians Control Outlines version 1.7 or newer
Version 1.62 2023-02-03
-Changed name of __invokerObject (within __index metatables) to a more matching name: __Object
-Added slash command /tbst or /tbugst to show the strings
-Added "slash commands with additional search term"
--e.g. /tbm bagId to open the control below the mouse and search at the inspector for bagId
--or /tbst test to open the global inspector "Strings" tab and search for "test"
-Added /tb <number> to open the global inspector tab with that index directly (1=addons, 2=classes, ...)
-Added right mouse button context menu to the expand&collapse, refresh and update button at the inspector windows
-Added right mouse button context menu to the # label at the bottom right of the inspector window
-Added double clicking the title icon (top left) will change the current inspector windows draw layer between normal and onTop
-Added tooltip at inspector tabs showing the name of the inspected control/variable (and the [MOC_<number>] for "mouse over" inspector tabs)
-Added some more local reference variables for the performance
-Changed context menu at the title icon (top left) to only show with a right mouse button click
-Changed "Set draw layer" context menu entries to hide the current draw layer
-Changed selected tab title, at an inspector, to show the complete tab's name now, and not the abbreviated number/text
-Changed table entries opened from the Global Inspector (e.g. addons) show the active tab with the clicked table index now (e.g. "Addons[22]" or "Libs[LibZone]")
-Fixed after closing all tabs of an inspector the first opened tab was hiding it's title
-Fixed all tabs closing in the current inspector if any global inspector table/control was clicked
-Fixed closing a tab will reset the filter text
-Fixed new created inspectors width and height to have default values, and not the "min" width/height values
-Added breadcrumbs to tabs to show them at the title (e.g. TBUG><clicked tableName>><clickedSubTableOfTheFirstTable>>and so on)
Version 1.61 2022-09-16
-Fixed filter search nil error for missing properties table
-Added scripts history inspector class and XML template
-Added multi line edit box for scripts at the script history
-Added test button for the multi line edit box entered script/lua code
-Added more context menu entries to script history rows (edit, test)
-Cleaned up some debug messages and variables, and code
-Added more comments
-Added dynamic control of global inspector panel classes and XML templates
Version 1.60 2022-09-15
-Added slash command /tbugdumpconstantsdelete to delete dumped SV data again
Syntax: /tbugdumpconstantsdelete <server: NA/EU/PTS> <APIVersion number, 6 digits)
Example: /tbugdumpconstantsdelete EU 101035
-Added script history for /tbug and /tb commands
-Added context menu entry to clear the total script history
-Changed script history row double click to use /tbug now instead of /script
Version 1.59 2022-09-04
-Added children count to the "children" headline at the inspectors
-Added value slider control on right click of some properties (alpha, scale) and keys (condition). Click the save button to save the changed value. Clicking/scrolling somewhere else will close the slider unsaved.
Version 1.58 2022-08-29
-Fixed error at special entries bagId&slotIndex/itemLink of parent controls
-Added search for headlines like "anchor", "children" to show the headline + related child rows
Version 1.57 2022-08-27
-Updated API and versions
-Fixed error as last tab was removed from an inspector
-Fixed events list not updating if restarted serveral times
-Added context menu entry "Clear events list" to the e/E button and the context menu at each event row
-Added search bar and filter button (str, pat, val, con) at each inspector.
Searching the different tables and controls and userdata etc. might error if you use the "con" search, or it may show false positiv if you search for "val" or "pat". Please report non working searches here at the addon commens or via PM! Thanks
The search text and mode will be remembered for each tab
-Added search history context menu at all tabs (global inspector still differs each tab, only all other inspectors share the searches -> up to 20 max)
-Removed redundant code
-Moved seach filters to own filters module
Version 1.56 2022-07-11
-Fixed "Scenes" and "Fragm." tab at global inspector
-Added context menu to the tablke inspector, if you right click on a key string where the value ends on "SCENE_NAME" or "SCENE_IDENTIFIER", to "Show scene" or "Hide scene" (only if currently shown)
Version 1.55 2022-07-11
-Added "Fragm." tab at global inspector which shows the fragments.
-Added new subTable "__usedInScenes" (purple) to fragments to list the scenes where this fragment is used
-Added slash command /tbugdelaymouse or /tbugdm or /tbdm <seconds> to delay the inspector by <seconds> before it inspects the control/object below the mouse
Version 1.54 2022-07-11
-Fixed GetName() for __invokerControl not working for scenes/fragments
-Fixed GetName() for __invokerControl not working for controls like comboBoxes using .m_name attribute
-Fixed function call without SHIFT key press to do nothing
-Fixed function call with SHIFT and CTRL key to not use the __invokerControl (if provided) but using the currently active inspector's data (e.g. ZO_Smithing "class" metatable)
-Fixed /tb listtlc command
Version 1.53 2022-07-07
-Fixed SHIFT + /tbug command not opening a new inspector
-Fixed SHIFT + LEFT+RIGHT mouse button always opening a new inspector (this special mouse command will now always reuse the first inspector. If you want to open the control below the mouse in a new inspector use /tbm slash command while pressing SHIFT key as you press RETURN)
-Fixed inspector not brought to front upon new open
-Fixed counter shown if inspector is collapsed
-Fixed controls at inspctor not clickable anymore after collapsing and expanding the collapsed inspector again
-Added more "Control Outline" context menu entries: Remove all outlines, remove outlines at control (+ children), add to control, add to control + children
-Added more enumerations to show the context menu for possible values, and the actual value's description text too: TEXT_ALIGN, TEXT_MODIFY_TYPE (both at CT_LABEL), TEX_MODE, TEX_BLEND_MODE (both CT_TEXTURE), BSTATE (CT_BUTTON)
-Added function TabWindow:getActiveTab() to TabWindow class
-Added automatic find of control/object for the function usage (SHIFT + left click on function name) if __index metatables are involved. A new entry __invokerObject will be forwarded to the __index entries of the inspectors so that the __invokerObject:functioName() could be called. Does only work properly with Get*(), Clear*() etc. functions where you do not need to pass in any additional parameters! Set*() functions might work if no parameters are needed.
The __invokerObject entry will be shown with a purple color.
e.g. SMITHING -> __index to ZO_Smithing will shows __invokerObject SMITHING and you are able to call functions of ZO_Smithing automatically passing in SMITHING as object
Version 1.51 2022-06-22
-Fixed drawTier/layer/level for inspector controls
-Fixed context menu at main icon
-More fixes
-Added dropdown Filter to "controls" tab
-Added context menu to the "e" (Events) button to access some event filters more easily, even without tracked event rows (exclude/include/reset)
-Added more submenus at the "events" contextmenus ateach tracked event row, to remove other excluded/included eventIds too
-Added count of (filtered) items at the bottom right of the inspectors
Version 1.50 2022-02-12
-Removed debug message
Version 1.49 2022-02-11
[Added]
-Show constant names (e.g. ITEMTYPE_POTION) as inspector right key, for some defined keys like itemType, specializedItemType, bagId, displayQuality, ...)
-Show constant entries for some defined entries like bagId, ... in a context menu if you right click the value at an inspector. If the value cannot be changed the contextMenu entries will be greyed out and are just shown for "possible values"
Version 1.48 2022-02-01
[Added]
-- DebugLogViewer UI: Right click the UI's border to bring the DebugLogViewer UI to the front
-- DoubleClicking the torchbug icon with the left mouse button, at the inspector window, will bring the window to the front
-- MouseEnter on an itemLink table inspector entry showas the itemlink as information tooltip
-- Added more constant texts to the right key field for values like bagId 1 = "BAG_BACKPACK"
[Fixed]
-- Context Menu change of boolean shows only the not current value + nil as selectable entries, and chaning them will work again now. Double click to toggle true/false
Version 1.47 2022-01-02
[Fixed]
Date/time checks on some userdata/table were returning a valid 0 number value and thus string.lower was trying to apply on userdata/table
Version 1.46 2021-12-01
[Fixed]
Context menu initiated at a key column in the inspector could raise a nil error
Version 1.45 2021-11-20
[Added]
-- Tooltip to properties containing "time"/"date": Shows a formatted date and time if the value is a valid timestamp between 0 and 2147483647 (year 238 due to ESO lua 32bit timestamps!)
-- Added double click to top-left icon to bring the inspector window to the front
--
[Fixed]
-- gLookup and gLookupEnum error messages
-- function return value nil error
-- function return value when boolean results
-- Search history: removed duplicate dividers (depening on LibCustomMenu version used)
-- Title text label width will end left to events button now
Version 1.44 2021-11-19
[Added]
--Context menu at key field of "outline" at controls: Blink outline (if not hidden) 1/3/5 times
--Context menu at key field of controls': Provide getter/setter names to chat editbox, or <control>:Getter()/:Setter() to the chat editbox
--Show indices of function return values ([n]) in front of the return value
[Fixed]
--Function run and return parameters: Last changes broke the return values of some function calls. Will now all run through function "showFunctionReturnValue"
Version 1.43 2021-11-19
[Added]
--Added support for the addon "Control Outlines" at controls. A new inspector row "outline" will show a boolean for the current outline state. Doubleclicking/right clicking and using the context menu is able to change the outline state
--Added slash commands /tbugo & /tbo <controlname> <controlname> ... to toggle the outline of the controls
--Added slash commands /tbugoc & /tboc <controlname> <controlname> ... to toggle the outline of the controls and their children
--Added slash commands /tbugor & /tbor <controlname> <controlname> ... to remove the outline of the controls and their children
--Added slash command /tbugo- & /tbo- ... to remove all control outlines again
-- Added slash command /tbd or /tbugd <seconds> <variable> for a delayed call to the inspector
[Fixed]
-- Function calls via the /tbug slash command will be trying to show that it was a function call now more constantly, and not only if you write the function name without the brackets ()
-- Error messages during function calls, or variable inspections, will show [TBUG]<<<ERROR>>> up in front now
Version 1.42 2021-11-18
-Updated the API
-Fixed reset function for ZO_ObjectPool (ZOs removed the default reset function) which lead to some table inspector rows showing weird
-Fixed rare error message for table inspector if data table was missing an entry
Version 1.41
Updated (2021-09-21):
[Added]
-- Added Cursor preview to the inspector rows having a cursor change in mind
-- Added own tb.dds texture file for the menus
-- Added the icon to the addon manager for an easy find of the addon via the yellow torchbug icon in the list
[Fixed]
-- Enable more inspector tabs than the global inspector got at max (was erroring if you got more than 15 inspector tabs active in 1 window).
-- Scrolling the tabs in the inspector will not center the selected tab anymore, moving all tabs to left/right invisible sections. The scrolling will only take place if there are more tabs created than the window width can show (scroll via MouseWheel e.g.).
-- Re-creation of the SavedVariables and other tabs via /tb sv e.g. was not working properly
Version 1.40
Updated (2021-06-21):
-Updated the API version
-Fixed SI string constants search (mixed upper/lower case)
-Fixed SI string constants right click context menu to copy the string constant name instead of the number constant
-Fixed EVENT_GLOBAL_MOUSE_UP at companion scene (to support SHIFT + left mouse + right mouse for the inspection of controls below the cursor)
Version 1.39
Updated (2021-05-04):
-Added SavedVariables tab to the global inspector
-Added /tbsv /tbugsv slash commands
-Enhanced the texture row detection via .dds string line check
-Fixed searches for all panels (will start to search after 500ms now instead during typing/will find entries at all panels again)
-Added search history (right mouse context menu) at the search box at the global inspector. The searhc history will add up to 20 entries, and will add a new entry if you ave typed text into the searchbox and 2 seconds have passed without a change to the entered text. Search history will differ between str, val, pat and con searches
-Fixed copy raw key for addons and events
-Added color picker to color properties and a preview color text "color example...". Double left click the rgb/rgba string to show it, or left click the right key entry (which shows the colored example text).
-Fixed the /tbug -all- slash command to restore all tabs at the global inspector
-Added a global inspector contextmenu entry to restore all/missing tabs if any was closed
-Added context menus to the events rows. You are able to include, exclude or only show 1 event now, or to restore all events again. The e/E button at the top right edge of the global inspector still enables/disables the events tracking.
Included/Excluded events will NOT be saved so after a reloadui/zone change the lists are empty and ALL eventy will be tracked again!
-Added /tbugdumpconstants slash command which dumps the masterList of the "Constants" tab, split up into normal constants and SI_ String constants, to the SavedVariables table "merTorchbugSavedVars_Dumps"
-Several fixes to the global inspector row context menus
-Added companion inventory row to possible inv. row patterns for bagid/sloIndex special context menu treatment
-Fixed bagId, slotIndex detection for companion inventory and character
Version 1.38
Updated (2021-03-28):
-- Control types showing the constant name instead of the number
-- Fixed the search bar not showing if inspector get's collapsed to the headline
-- Fixed the collapsed control resizing to the original size (still collapsed and invisible but mouse click enabled, overlaying other controls)
-- Show a small texture preview on mouseOver the textFileName column
-- Added the small e (disabled) and E (enabled) to the global inspector -> Track all events if enabled and show in the new "Events" tab of the global inspector
Version 1.37
Updated (2020-11-27):
-Fixed context menu at global inspector: Remove all tabs was removed so that you cannot accidently remove all the addons, libs, scripts, control, etc. tabs
-Fixed context menu at insepctors: Bringt to front will move other inspctors to the normal layer again
-Added right click to bottom line of inspector/global inspector window: Will bring this window to the front and all other torchbuginspectors to the back
-Added "Copy key RAW" context menu to the key columns of inspectors, e.g. to copy the function name/control name/font name of the global inspector tabs
-Added "Scenes" tab to the global inspector
-Added slash commands /tbsc or /tbugsc to show the SCENE_MANAGER
Version 1.36
Updated (2020-11-16):
-Fixed internal version shown
-Added itemlink plain text to the inspector
-Added itemlink plain text copy functions via context menu
-> For all itemlink plain texts there will be 1 space between the itemlink's opening character | and the following character h! If you remove this the normal itemlink will be shown ingame in teh UI, so make sure you remove this after copying it outisde of the game, to get a valid itemlink again.
-Added combination instead of a keybind: SHIFT key+ left mouse + right mouse button pressed at the same time will inspect the control below the mouse (if you aren't in combat). If you always end in inspecting a ZO_Menu try to press the left mouse BEFORE the right mouse button :-p
Version 1.35
Updated (2020-11-16):
-Updated API version
-Added more bagId/slotIndex inspectors (e.g. fixed dialogs, character equipped items)
-Added the itemlink to the inspector of item controls + context menu to copy RAW and special
-Added slash comannd /tbi (or /tbugi or /tbugitemlink) to show information about the item below the cursor in the chat -> Tell me if you want it to show more/other info as well
-Added slash command /tbs for the scripts UI
Version 1.34
Updated (2020-06-23):
Fixed variable chnages from the table inspector: Double click, context menu and manually changed values
Version 1.33
Updated (2020-06-01):
Fixed slash command /rl to start endless loop as it was repeating RealodUI("ingame") all the time. Thanks to Jarth for the hint!
Version 1.32
Updated (2020-05-23):
-Added "AddOns" tab to the global inspector listing all addons&libraries currently loaded in their load order, providing their version (if given), and some details if you click the addon (table containing the addon's title, description, author, version, globalvariable if it's a lib, library flag, date and time as it got loaded etc.
It also shows if the addon/lib was loaded via LibStub or not and colors the obsoletely via LibStub loaded addons "red" at their version.
-Added slash commands to open the AddOns panel
/tbug addons
/tbuga
/tba
-Added keybinding for "Reload UI"
Version 1.31
Updated (2020-04-28):
-Updated version and name in global TBUG
-Changed chat text input usage to function StartChatInput
Version 1.3
Updated (2020-04-27):
Fixed resizing problems with the collapsed inspectors. Width can be changed as it is collapsed, height not anymore.
Fixed min width and height of the windows.
Fixed inspector opening empty if it once was opened and then closed, and afterwards any script without object (e.g. d("hello world") was run.
Fixed refresh button not usable if inspector window is collapsed to the title bar.
Fixed list entries, height and scrollbar updating after resize of the inspector window.
Added tooltips to the window buttons collapse/expand, refresh and close.
Added context menu to the torchbug icon of the inspectors, giving the possibilities to
--Resize to standard size of the window
--Refresh contents (if not collapsed)
--Collapse/Expand
--Change the drawlayer: Bring to front / normal / send to back
--Hide
--Close and destroy tabs
Added more and shorter slash commands, if they do not exist already (created by other addons):
/tb -> Same as /tbug
/tbm -> Same as /tbugm or /tbug m or /tbug mouse
Version 1.2.1
-Changed the control below mosue calls so they add a new tab to one (first created) inspector window
-Changed the inspector window's tab switch to update the title of the inspector window accordingly to the tab name (and respecting control below mouse tabs -> "MOC_" prefix). Also works with mouse wheel tab change
-Last tab removed from an inspector window will clear the title of the window (and could also close the window, but currentl this code line is commented. Your TODO said "Windows don't close after their last tab has been closed." but I feel this is not needed as one can click the X icon for this.)
-Allowed functions to be used via /tbug and inspector row left mouse button clicks (with SHIFT key pressed) and show their return values, or error message
-Selecting a tab (mouse click, mouse scroll wheel) or opening the same object via /tbug again will refresh the panel
-Added refresh button (o) left to the close button (x) at the inspector windows title
-Added collapse button (^) and (v) left to the refresh button (o) at the inspector window title. This will collapse the window to the title only, and back (to save space if you want to see values below the window at the UI).
-Added double click on boolean value to change it between true/false
-Added [] at tab and title if the shown item is a table.
-Fixed inspector window context menu for boolean values to be able to set NIL -> Attention: This will remove the variable from the inspector as it does not exist anymore afterwards! Good to clear SavedVariable data e.g.
Added new (2020-01-18):
-The global inspector holds a "Script" tab now. Each /script command you run in teh chat will be automatically added there. You are able to right click it to change it in the insepctor. Double click it to post the script as /script ... command to the chat edit box. Right click the left key column (number) to show a context menu (currently: Delete row)
-Added chat commands to open the global inspector tabsdirectly:
Code:
/tbug <globalInspectorTabNameLowerCase>
Where <globalInspectorTabNameLowerCase> can be one of the following
- classes
- objects
- controls
- fonts
- functions
- constants
- strings
- sounds
- dialogs
- libs
- scripts
- -all-
-> The -all- command (/tbug -all-) will recreate all tabs at the global inspector if you accidently closed one or need all of them back
-Added 3rd column "comment" in scripts tab (to the right of the script column) where you can right click and add a comment text for your script
Added new (2020-04-13):
Clicked table keys (numerical) will open as tableName[keyNr] now and not only as [keyNr] anymore.
Added support for non-LibStub libraries in the "Libs" tab.
Marked LibStub loaded libraries with the red"LibStub" hint.
After the LibStub hint the minor version of LiBStub is shown in ().
If the library is not a LibStub supported one the ## AddOnVersion version is shown instead of the LibStub hint and version!
Libs need their own txt file to be detected! The txt file needs the ## IsLibrary: true tag!
The global variables of the lib need to be the same like the lib name, or similar, like LibAddonMenu-2.0 will be split at the - and the 2.0 turned into a number and attached to the LibAddonMenu again -> LibAddonMenu2
Some special ones exists like LibBinaryEncode = LBE, which I for now have hardcoded. If you miss others in the list tell me which ones are missing.
Added new (2020-04-16):
Added support for some list row entries. If the control inspector recognizes them (e.g. ZO_PlayerInventoryList1Row...) it will add the dataEntry.data table and the bagId and slotIndex to the List row properties at the top of the Anchor properties, so you have them directly in view after using e.g. /tbugm on that list row.
Added context menus to numbers and strings to copy the raw value shown to the chat.
Added context menu for special entries like bagid / slotIndex to copy the raw value, the 2 as a pair, as itemlink or name of the item to the chat.
Updated (2020-04-18):
Made the XML look better to show the different columns: Key, script, comment about the script.
Fixed scripts tab to save the script comments properly to the selected row if you have scrolled.
Hide/Show 2nd value column (comment) properly after edit was active/aborted.
Added color for script comments, generel "comment" colortype was added with color "white".
Made the context menu for scripts work (remove script from list).
Made updating the librray / scripts panels work.
Added slash command /tbugs to directly show the scripts.
Added slash command /rl for reloadui, if /rl does not exist yet.
Added the text via GetText function next to the value, if a table key is "text" and the value is a number.
Added a font preview at the fonts tab (each row shows the font name with it's own font style now).
Version 1.2
-Adding keybindings for /tbug and /tbug moc() -> new slash command /tbugm as well
-Added /tbug mouse for the same control unde rmouse inspection
-Adding LibCustomMenu to ## OptionalDependsOn: and adding a context menu to the boolean entries in the inspectors to allow true/false selection + manual text edit entry.

-Added mana's function to show TopLevelControls, but with another name as "vis" is a bit short for a global func:
Code:
/tbug ListTLC(boolean: onlyVisible)
Shows the list with currently visible/non visible GuiRoot children
-Workaround for current client crash on PTS with API 100029 because of zo_nextinsecure bug in _G[]. Will show a debug message if you call /tbug without any parameter instead of trying to read _G and crash the client.
-Added global variable TBUG to make the keybindings work
-Added compatibility chat command /zgoo (if ZGOO is not loaded). I'm so used to /zgoo that I sometimes type it in and wonder it does not show anything :p