Download
(139 Kb)
Download
Updated: 01/13/24 03:26 PM
Patch for:
Mer Torchbug.
Pictures
File Info
Compatibility:
Endless Archive (9.2.5)
base-game patch (9.1.5)
Necrom (9.0.0)
Scribes of Fate (8.3.5)
Firesong (8.2.5)
Lost Depths (8.1.5)
High Isle (8.0.0)
Updated:01/13/24 03:26 PM
Created:04/27/20 01:52 AM
Monthly downloads:160
Total downloads:12,813
Favorites:10
MD5:
Mer Torchbug - Fixed and Improved (Variable inspector/Scripts/Events/and more)  Popular! (More than 5000 hits)
Version: 1.66
by: Baertram [More]
This is a patch for Merlight's mer Torchbug inspection tool. Thanks merlight for this great inspector tool!


Optional dependencies:
If you want to use the context menu functions you need to install this library: LibCustomMenu
If you want to use scrollable submenus like the Is*/Get*ItemLink* functions at the inspectors you need to install this library: LibScrollableMenu

If you want to see the "outline" attribute at controls, and make the slash commands for outlining controls work, you need to install
Circonians Control Outlines version 1.7 or newer


What is mer Torchbug?
The idea behind this tool is (like with Zgoo as well) to inspect global variables/controls ingame to see their current attributes/parents/variables/values.
You can e.g. use /tbug <globalVariableNameOrFunction> (where <globalVariableNameOrFunction> could be e.g. MyAddon or GetUnitName("player")) to inspect this global variable, or show the results of the function call in the chat.

/tbug alone shows you the "global inspector" which holds texts, global variables, sounds, libraries etc.

An inspector (global, normal, table, control) is a window with possible tabs where you can click the different variables etc. and it will open another tab for them, so you are able to inspect (and change, if possible) some of the values of the inspected variables. __index shows you "inherited" functions and variables of the parent "class" (table, using metatables).


What are the base features or merTorchbug?
Please read here: mer Torchbug


What was added new with this patch?
Please read the changelog for a total list of bugfixes and changes.
Here is a short overview of new added slash commands and features.


Slash commands (enter into the chat editbox):
<searchText: optional> behind the slash commands means you can enter a search text like "bagId" and the inspector will show and filter to that searchText matches directly without you having to enter it at the search editfield (top left) manually.
  • /tb <variable : optional> <searchText: optional> -> Sames as /tbug. Without a <variable> the GlobalInspector (main TB UI, providing the constants,functions,objects,strings, ... tabs) will be shown!
  • /tbd <seconds> <variable> <searchText: optional> -> Inspect the variable delayed by <seconds> seconds
  • /tbdm <seconds> <searchText: optional> -> Inspect the control/object below the mouse cursor delayed by <seconds> seconds
  • /tbugm or /tbm <searchText: optional> -> Inspect control below mouse cursor
    -> Or use (SHIFT key + left&right mouse button) to inspect the control below the mouse
  • /zgoo (if not addon Zgoo is loaded) -> Sames as [color="MediumTurquoise"]/tbug <variable> or [color="MediumTurquoise"]/tb <variable>
    -> /tbe to show the events tab
  • /tba or /tbuga <searchText: optional> -> Show the addons info
  • /tbs or /tbugs <searchText: optional> -> Show the scripts history
  • /tbi or /tbugi -> Show the information about an item (itemlink) below the cursor
  • /tbiinfo <itemLink> -> Show the information about an itemlink passed in as <itemLink>
  • /tbsc <searchText: optional> shows the SCENE_MANAGER
  • /tbst or /tbugst <searchText: optional> -> Show the Strings constants like SI_* (for the GetString(SI_*) function usage)
  • /tbsv shows the SavedVariables (or actually enabled addons) which were detected. As SavedVariables are global tables Torchbug can only detect those which contain a suffix like settings, options, opts, savedvar, savedvariables, sv, data or similar in their name and might also show false positive matches for non-sv tables! So always check if the tables shown really are SavedVariables (e.g. contain the table structures with the servername/default and the @displayName and/or characterId/name before changing them!
  • /tbss stops endlessly playing sound (enabled via context menu at the sounds tab at the global inspector)
  • /tbug <globalInspectorTab> will directly open the tab at the global inspector. Values of <globalInspectorTab> can be:
    • addons
    • classes
    • objects
    • controls
    • fonts
    • functions
    • constants
    • strings
    • sounds
    • dialogs
    • scenes
    • fragments
    • libs
    • scripts
    • events
    • sv
    • savedinsp
    • -all-
  • /tbsave will save all opend inspectors and their tabs to the SavedVariables so you can open them later again! Attention: Only the inspectors and tabs are saved, not the actual values of the tab's data!!! So reopening the tabs later will show the "current data" of these objects adnd NOT any saved old data/state!
  • /tbload <number> will load the saved inspectors and tabs of <number>. Pressing SHIFT key will open all in the same inspector. Else they will be opened like saved.
  • With "Circonians Control Outline" enabled: s /tbugo or /tbo <control> will show the outline on that control. If no control is named it will use moc()
  • With "Circonians Control Outline" enabled: s /tbugoc or /tboc <control> will show the outline on that control + it's children. If no control is named it will use moc()
  • With "Circonians Control Outline" enabled: s /tbugor or /tbor <control> will hide the outline on that control and it's children. If no control is named it will use moc()
  • With "Circonians Control Outline" enabled: s /tbugo- or /tbo- <control> will hide all outlines on all controls.


New features/Bug fixes:
  • The tab title and the inspector title show proper names now, depending on the inspected type of object, and "breadCrumbs" show you the clicked path of the inspected data (e.g. Control1.table1.subTable2[5]).
  • The tab's show a tooltip if you move the mouse above them, telling you when (date & time) you have inspected this tab and showing you other info like the breadCrumbs
  • Added search at all inspctors to search for atttributes, variables, tables, lists, control etc. using the different search modes "str", "pat", "val" and "con" (you can use k.<variable> and v.<variable> for key / value in con mode -> e.g. v.data.typ == 8)
  • -Collapse/Expand inspector window with v^ icons (top right corner)
  • -Refresh inspector window with o icon (top right corner)
  • -Right click context menu at the inspector's torchBug icon
  • -Context menu at inspector values: Copy raw data / Copy special (bagId, slotIndex e.g.) / Change boolean value (true/false/NIL)
    -> Special context menu entries for bag & slotIndex (e.g. create itemLinks etc.)
  • Preview textures / .dds strings in a tooltip on mouse over of the string row
  • -Track all events ingame via the e (= disabled / E = enabled) button at the global inspector. Check the "Events" tab to see al events that fired since it was enabled. Right click the e/E button, or events at the Events tab list to add filters, exclude/include only some events.
  • -Scripts history added to global inspector. All /script or /tbug or /tb commands run via the chat edit box will be automatically saved there so you can reuse them. Double click to paste the entry to your chatbox. Right click to edit it. Right click the key number to show a context menu (delete entry, test it, edit it e.g.)
    Right click the script history number to show a context menu where you can assign/remove/clear up to 5 keybinds for your scripts.
    Keybinds need to be bound in control settings.
    You can use the slash command /tbugs <searchText: optional> to open the scripts and enter lua code in the multiline editbox (max 2000 chars can be saved for each script within the SavedVariables!) and save it manually as a history entry.
    Scripts of the history will be executed via the /tbug command as they are run, which means that the results will be either shown in chat or opened in an inspector (if a control/table will be returned).
  • Fragments show a purple subTable "__usedInScenes" where all scenes are listed that this fragment was added to (at the time that merTorchbug was loaded! If fragments get added dynamically to scenes this will not update the fragments's "__usednScenes" subtable)
  • 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
  • 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. /tbm or /tbugm on that list row.
    ItemLink tooltip will be shown and the bagId will show the BAG_* constant too at these rows
  • Show constant names (e.g. ITEMTYPE_POTION) as inspector right key, for some defined keys like itemType, specializedItemType, bagId, displayQuality, ...)
  • Preview the font color at labels, clicking it will show a color picker to change it.
  • Filter dropdowns to filter some global inspector values
  • Number of currently shown/filtered entries in inspectpor lists (bottom right)
  • Automatic find of control/object for the function usage (SHIFT + left click on function name) if __index metatables are involved. A new entry __Object will be forwarded to the __index entries of the inspectors so that the __Object: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 __Object entry will be shown with a purple color.
    e.g. SMITHING -> __index to ZO_Smithing will shows __Object SMITHING and you are able to call functions of ZO_Smithing automatically passing in SMITHING as object
  • Press SHIFT + CTRL + mouse left on a function to run the function with the currently shown inspector (e.g. ZO_Smithing "class").
    Press SHIFT + mouse left on a function to run the function with the __invokerControl (object) (e.g. created SMITHING object of ZO_Smithing "class").
  • Press SHIFT+Right click on a tab to close all other tabs of that inspector
  • Right click the torchbug icon (topleft) to show a context menu with some "Tools" like the SCENE_MANAGER, or a "Ruler" function (show the height and width at the inspector), or save the currently opened inspectors and tabs


Known bugs:
Resizing the inspectors with the last tab selected (most right tab) might hide (scroll out of view to the left) all tabs on the horizontal scrollbar. Just resize the inspector window again to show the tabs, click on another tab than the last right one, and resize the window to your needs again. Or use the mouse wheel to scroll on the horizontal scrollbar to show the tabs again.

Original addon's description:
The original addon can be found here: mer Torchbug

This ambitious Torchbug wants to become a more capable and less sticky alternative to Zgoo. But beware: it's not quite there yet, and has more bugs than the one in its name.

/tbug expr
If expr is omitted or evaluates to _G, Global inspector will be opened.
If expr evaluates to a table, Table inspector will be opened for the table.
If expr evaluates to a control (userdata with function IsControlHidden), Control inspector will be opened for the control.

The most recently opened object inspector window will have the Torchbug icon at the top-left corner desaturated (grayscale). Such window is subject to recycling whenever you a) click on a table or control row in Global inspector, or b) enter a /tbug command that evaluates to a table or control. You can force opening a new window by shift-click (in Global inspector) or shift-enter (/tbug command).


Global inspector
Classes - global tables with an __index member
Objects - global tables without an __index member, and userdata that are neither controls nor fonts
Controls - global userdata with function IsControlHidden
Fonts - global userdata with function GetFontInfo
Functions - global functions
Constants - all other globals
Strings - EsoStrings - with SI constant names as well as integer values displayed
Sounds - SOUNDS - click to play
Dialogs - ESO_Dialogs
Libs - LibStub.libs - with minor versions displayed next to names

Next to the magnifier icon is a filter mode switch (the three-letter button) and a string/expression filter field.
str - plain string search. Case-sensitive if there is at least one upper-case letter in the string.
pat - string pattern search. Case-sensitive.
val - value search. The expression is evaluated once. Items whose value compares equal to the result pass the filter.
con - condition search. The expression is evaluated for each list item, with environment containing 'k' and 'v' as the list item key and value. Items for which the result is truthy pass the filter.
For example, this is how you can search the Constants tab for items whose key starts with "B" and whose value is an even number:
k:find("^B") and v % 2 == 0

Left-click on a row with a table or control opens a new inspector for that object.
Right-click on a value - same as in Table inspector.


Table inspector

Metatable members are listed before actual table contents. Metamethods are differentiated by having yellow keys, despite them being strings.

Left-click on a row with a table or control opens a new tab in the same inspector window. Shift-Left-click to open a new window.
Right-click on a value (the right half of the row) switches to edit mode. Whatever you type will be evaluated after you hit Enter, and unless that fails, the result will be assigned to the corresponding key in the table. Use with care.

Right-click on a tab to close it.


Control inspector

In v1.1 there are many more control properties listed, including anchors, children and properties specific to certain control types. Some are editable, but there's currently no visual cue, you'll need to right-click and see.


Original addon's TODO
String search uses tostring(value), which leads to stupid matches with table/userdata address (which may not even be displayed if it has a global name).
Windows don't close after their last tab has been closed. -> Fixed in mer Torchbug - Fixed and improved
Add color box to color properties, open color picker on click.
Implement inserting a new key/value pair to inspected table. Also add "self" to the environment to facilitate copying another value from the same table.
Control properties hidden/controlHidden, alpha/controlAlpha and scale have confusing set/get semantics when inheritance is involved; needs discussion.
Toggle boolean properties with a doubleclick. -> Fixed in mer Torchbug - Fixed and improved



Many thanks to
Merlight - For the idea and code of torchbug, and zgoo
Rhyono - For zgoo improved code
SinusPi - For zgoo code
sirinsidiator - For helping with addon manager & libraries code
votan - For helping with addon manager code & creating LibCustomMenu
Optional dependencies:
If you want to use the context menu functions you need to install this library: LibCustomMenu
If you want to use scrollable submenus like the Is*/Get*ItemLink* functions at the inspectors you need to install this library: LibScrollableMenu
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.66 2024-01-13
-Fixed context menu error string needed, got bool


Version 1.65 2024-01-12
-Added LibScrollableMenu v1.7 optional dependency for scrollable submenus
-Added new global inspector tab "Saved Insp". You can save your open inspectors now via the torchbug icon's (top left) context (right click) menu or via chat command /tbsave and load them via /tbload <number>
The global inspector's tab "SavedInsp" shows you the number of saved inspectors, and the windows saved per inspector.
Double click them to load them.
Press the SHIFT key to load all in 1 inspector (also works during slash command /tbload <number> usage) instead of in the saved inspectors.
-Added context menu at itemlink/bagId/slotIndex (special) to show Get*/Is*ItemLink functions as scrollable sumenu if LSM is enabled -> You must open /tbug (or /tb) once first to load all functions data before the context menu can show these function name entries!
-SavedVariables -> Inspector shows character name for a character Id
-Added headline "DimensionConstraints" to the control inspector
-Added AnchorConstrains to anchors at controls
-Added resizeToFitConstrains and resizeToFitPadding to control inspector rows
-Changed resizeToFitPadding to x and y
-Fixed search to use "AddOns" global inspector tab's name and not the key number
-Added Inspector torchbug icon -> context menu -> options -> Toggle inspector height/width at title (use the inspector's size as a measurement tool)
-Disabled auto-refesh of the global inspector if it get's resized -> You need to manually press the O refresh button now! This will reduce lag if you e.g. resize the global inspector's "Constants" or "Functions" tabs.
-Added "functions" -> Search ESOUI sources with GitHub URL
-Fixed nil error at context menu if LibScrollableMenu v1.6 was loaded
-Added inventory items (or inspectors where there are bagId/slotIndex/itemLink) context menu entries for all
-Fixed duplicate search entries at context menu
-Added context menu to search for "words" (split at uppercase characters, e.g. abilityTooltipMungeOverlayBG ->
-Added context menu to inspector rows: Search key
-Added context menu to inspector rows: Search value
-Fixed ESOStrings with entries that got a lowecase string in their constant to properly show at the "Strings" tab of tbug global inspector
-Removed debug messages
-Added SHIFT+right click on tab to remove all other tabs (exclude the right clicked one)
-Added context menu entry to inspector's tbug icon: "Close all tabs"

Version 1.64 2023-11-18
-Added context menu to global inspector: Copy RAW title / Copy title / Copy title clean
-Added context menu current row / index number to indexed tables context menus (at the "Row actions" line)
-Added context menu to Sounds tab at global inspector: Play sounds, repetively/endlessly, with volume control
-Added context menu to all inspectors: Stop playing non-stop sound
-Added localization String context menu entries to copy the GetString(SI_...) or GetString("SI_...", counter) to the chat
-Added dialog context menu entry to open the platform dialog (if possible)
-Added slash commands /tbss or /tbugsoundstop or /tbsoundstop to stop playing the endlessly sound
-Added fixes for other context menus
-Added scrip history keybinds, up to 5
Use the context menu at the script history tab at the global inspector to assign a keybind to a number
-Added script history context menus to clean them up
-Fixed string search to find GetString SI_ values too
-Fixed value searches to lowercase compare "string" values
-Added new search method "key" so you can search a key field (e.g. index/number, but also "string")
-Added context menu "Tools" to the inspectors. Currently it contains only the "SCENE_MANAGER"


Version 1.63 2023-05-21
-Added context menu withs ettings to global inspector
-Fixed SHIFT+RMB+LMB to inspect a control below the cursor not firing in combat/AvA/dungeon/raid
-Fixed SHIFT+RMB+LMB to inspect a control below the cursor not firing for GuiRoot
-Added settings to disable this global mouse event for the inspection
-Addded settings to disable the in combat/dungeon/raid/AvA checks for the inspection

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
Archived Files (36)
File Name
Version
Size
Uploader
Date
1.65
139kB
Baertram
01/11/24 06:27 PM
1.64
120kB
Baertram
11/17/23 08:56 PM
1.63
114kB
Baertram
05/21/23 03:13 PM
1.62
113kB
Baertram
02/02/23 09:53 PM
1.61
105kB
Baertram
09/15/22 07:02 PM
1.60
100kB
Baertram
09/14/22 06:13 PM
1.59
100kB
Baertram
09/04/22 01:52 PM
1.58
96kB
Baertram
08/28/22 04:24 PM
1.57
96kB
Baertram
08/26/22 04:12 PM
1.56
93kB
Baertram
07/11/22 12:16 PM
1.55
93kB
Baertram
07/11/22 09:36 AM
1.54
92kB
Baertram
07/11/22 05:39 AM
1.53
91kB
Baertram
07/07/22 11:49 AM
1.51
87kB
Baertram
06/21/22 05:17 PM
1.50
81kB
Baertram
02/12/22 12:40 PM
1.49
81kB
Baertram
02/11/22 02:13 PM
1.48
77kB
Baertram
01/31/22 08:11 PM
1.47
76kB
Baertram
01/02/22 01:53 PM
1.46
76kB
Baertram
12/01/21 11:05 AM
1.45
76kB
Baertram
11/19/21 09:38 PM
1.44
76kB
Baertram
11/19/21 05:24 PM
1.43
74kB
Baertram
11/18/21 10:57 PM
1.42
72kB
Baertram
11/17/21 06:20 PM
1.41
72kB
Baertram
11/01/21 05:18 PM
1.41
72kB
Baertram
09/21/21 01:49 PM
1.40
60kB
Baertram
06/15/21 08:42 AM
1.39
60kB
Baertram
05/04/21 02:54 PM
1.38
52kB
Baertram
03/28/21 03:47 PM
1.37
48kB
Baertram
11/26/20 05:27 PM
1.36
47kB
Baertram
11/16/20 03:31 PM
1.35
47kB
Baertram
11/15/20 07:39 PM
1.34
46kB
Baertram
06/23/20 11:21 AM
1.33
45kB
Baertram
06/01/20 05:41 AM
1.32
45kB
Baertram
05/23/20 08:37 AM
1.31
44kB
Baertram
04/28/20 02:33 AM
1.3
44kB
Baertram
04/27/20 01:52 AM


Post A Reply Comment Options
Unread 07/10/22, 05:44 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4912
File comments: 5990
Uploads: 78
Re: Is there a

I've posted your questions to Beammeup comments, please have a look there for your answers

Originally Posted by DewiMorgan
There doesn't seem to be a /bmu or /bmutp command for "just get me to a wayshrine. ANY wayshrine, I don't care. Just, don't make me type another command, or have to open bmu to see which ones are available."

That is, I'd like a command I can type that is guaranteed to get me to a wayshrine.

This would be useful at the end of the day, as I try to always end at a wayshrine so that future-me can start his day more easily.

Plus, if it's a single command, I can just macro it. Handy when I just want to be "not here" as fast as possible.

Mostly, it'd be useful for harvesting surveys, etc. Usually I pick:
- a zone listed on the "leads, clues, maps and surveys" harvestables-list, if there is one.
- my current zone, if available (minimizes load time).
- anywhere else.

For the zones with no guildies in (quite a few, late at night when I do my harvesting), I just want to get to ANY wayshrine, so that I can port to the correct zone from there.

So, two suggestions and a bonus-suggestion:
1) a /bmutp/any (or maybe just /bmutp) command which tries to send you to a wayshrine in the current zone, or else to just any available wayshrine in the game.
2) Or instead, perhaps a checkbox option in the settings for "if any /bmutp/ command fails because there are no guildies in that zone, then at least tp to some wayshrine, instead of just failing with an error message."
+) Have a wayshrine with a '*' or '?' by it, beside the red unavailable zones in the harvestables-list, which just does the above behavior. I admit this would only save the user one click compared to clicking to refresh the result list, then clicking the first entry, but late at night, when I'm tired and have no brain, it'd save me the brain-load of realizing that's what I need to do to get to that place.

None of these are critical, so I won't be super sad if they aren't implemented, but they'd make my life simpler and reduce my frustration levels when harvesting surveys.

If don't want to spend the time to make them because you already maintain an insane number of addons, but you'd be interested in a patch if one were submitted, just let me know and I'll have a bash at it
Report comment to moderator  
Reply With Quote
Unread 06/01/20, 05:40 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4912
File comments: 5990
Uploads: 78
Thanks, update coming
Report comment to moderator  
Reply With Quote
Unread 06/01/20, 05:22 AM  
Jarth
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 91
Uploads: 2
Re: Re: Comments to Version 1.32

Hello again

That does the trick yes.

Originally Posted by Baertram
Thanks for the report.

/rl can be added by any addon and it actually is by FCOChangeStuff e.g.
There alsoe exist others like the Reloadui Extra Slash Commands addon.

Torchbug is just checking if it exists already and if not, it defines it.

Not sure why this would do a reloadui in a loop here but I'll change that to be called from an anonymous function then.

Could you please test with this change:
Lua Code:
  1. if SLASH_COMMANDS["/rl"] == nil then
  2.         SLASH_COMMANDS["/rl"] = function() ReloadUI("ingame") end
  3.     end

Should fix it (hopefully).

Originally Posted by Jarth
First off, thanks for keeping the addon alive.

I had an issue where the system loaded fine on first load (most of the times), but sometimes kept reloading over and over.

I found the issue to be in main.lua:681, where it called ReloadUI on load, and not when the key slash command was executed
I don't use ZGOO so SLASH_COMMANDS["/rl"] is never set in my case.
Code:
if SLASH_COMMANDS["/rl"] == nil then
  SLASH_COMMANDS["/rl"] = ReloadUI("ingame")
end
Though "/rl" would have no function without ZGOO?
Report comment to moderator  
Reply With Quote
Unread 06/01/20, 05:05 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4912
File comments: 5990
Uploads: 78
Re: Comments to Version 1.32

Thanks for the report.

/rl can be added by any addon and it actually is by FCOChangeStuff e.g.
There alsoe exist others like the Reloadui Extra Slash Commands addon.

Torchbug is just checking if it exists already and if not, it defines it.

Not sure why this would do a reloadui in a loop here but I'll change that to be called from an anonymous function then.

Could you please test with this change:
Lua Code:
  1. if SLASH_COMMANDS["/rl"] == nil then
  2.         SLASH_COMMANDS["/rl"] = function() ReloadUI("ingame") end
  3.     end

Should fix it (hopefully).

Originally Posted by Jarth
First off, thanks for keeping the addon alive.

I had an issue where the system loaded fine on first load (most of the times), but sometimes kept reloading over and over.

I found the issue to be in main.lua:681, where it called ReloadUI on load, and not when the key slash command was executed
I don't use ZGOO so SLASH_COMMANDS["/rl"] is never set in my case.
Code:
if SLASH_COMMANDS["/rl"] == nil then
  SLASH_COMMANDS["/rl"] = ReloadUI("ingame")
end
Though "/rl" would have no function without ZGOO?
Last edited by Baertram : 06/01/20 at 05:07 AM.
Report comment to moderator  
Reply With Quote
Unread 06/01/20, 04:43 AM  
Jarth
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 91
Uploads: 2
Comments to Version 1.32

First off, thanks for keeping the addon alive.

I had an issue where the system loaded fine on first load (most of the times), but sometimes kept reloading over and over.

I found the issue to be in main.lua:681, where it called ReloadUI on load, and not when the key slash command was executed
I don't use ZGOO so SLASH_COMMANDS["/rl"] is never set in my case.
Code:
if SLASH_COMMANDS["/rl"] == nil then
  SLASH_COMMANDS["/rl"] = ReloadUI("ingame")
end
Though "/rl" would have no function without ZGOO?
Last edited by Jarth : 06/01/20 at 04:48 AM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.