Development Tools Login to Add Favorites
  • 1 Like
  • World of Warcraft
  • 7 Monthly Downloads
  • Supports: 7.0.3
  • 2,067 Total Downloads
  • Updated Aug 25, 2016
  • Created Jul 14, 2009
  • 13 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: GNU General Public License version 3 (GPLv3)
  • Newest File: 7.0.1

About watch

This addon is a development addon that lets you display contents of variables and continually updates the result.


  • Continuous colored output of values, tables, selected functions/methods, and ui objects
  • Left-click any line in a table to open a new watcher watching for this key - unless it's a function
    • Most functions are blocked, unless explicitly whitelisted
  • Try /rewatch after reloading your ui, you'll love it
  • Use your scrollwheel...
  • Right-Click the title bars for a dropdown menu
  • The green-ish area in the lower right corner of a watcher window is actually a resize-handle... sorry for the odd texture. Window sizes are saved through sessions
  • Zero dependencies, zero libraries. Perfect for testing add-on deployment.


/watch [expression]
Watches defined expression, if you skip the expression part, it will watch for "nil" wich is quite useless though.
/unwatch <id>
Removes a watcher with <id>, ID's are shown in the watcher window title as a number between ((double parentheses)).
/unwatch ALL
Removes ... all watchers! (the argument is case-sensitive! so "all" or "All" and not even "aLL" will work).
Restores watchers from the last session. This might yield unexpected results if called more than once ...

Useful info

  • You can watch for invalid expressions that might become valid sometime (or never, though that's not really useful), like MyAddonTable.frameindex:GetTop() might throw an error normally if the frame does not exist. This error will even be printed in the watcher frame, but if you create it during your session, the watcher will print the correct value.
  • Syntax errors should be detected when executing the slash command and should prevent generating a watcher.
  • Your expression will result in parsing a code like "return {expression}" (the curly braces are really there)

Stuff that is planned

  • Show/Hide unsafe functions - Often you actually don't care about table values that contain functions, especially those that are not listed as safe methods, so I'd like to add an option to the dropdown to hide/show those
  • Change expression - Just a dropdown menu item to change the expression
  • Highlight lines that change (I already know how to do it, just can't decide on the color... :D)
  • Key combination to force evaluation of method
  • Marking lines (+ Showing only marked lines)
  • Hide unsafe lines
  • Drill-down for anonymous code (structures that can not be reached from global environment)

r42 | watchout | 2016-08-25 06:32:05 +0000 (Thu, 25 Aug 2016) | 1 line
Changed paths:
   A /tags/7.0.1 (from /trunk:41)

Tagging as 7.0.1
r41 | watchout | 2016-08-24 19:23:19 +0000 (Wed, 24 Aug 2016) | 1 line
Changed paths:
   M /trunk/WatchFrame.xml

Fix for multi-line strings
r39 | watchout | 2016-08-20 22:14:40 +0000 (Sat, 20 Aug 2016) | 1 line
Changed paths:
   M /trunk/Watch.lua

Remove debug lines
r38 | watchout | 2016-08-20 22:14:08 +0000 (Sat, 20 Aug 2016) | 1 line
Changed paths:
   M /trunk/Watch.toc
   D /trunk/Watch.xml

Remove obsolete XML
r37 | watchout | 2016-08-20 22:04:14 +0000 (Sat, 20 Aug 2016) | 2 lines
Changed paths:
   A /trunk/Safe-Methods.lua
   M /trunk/Watch.lua
   M /trunk/Watch.toc
   A /trunk/WatchFrame.lua
   A /trunk/WatchFrame.xml

Big refactor:
Replaced single SimpleHTML with multiple single-line FontStrings. No more length limit. No more line-wrap though. More possibilities in the future.
r36 | watchout | 2016-07-24 13:54:25 +0000 (Sun, 24 Jul 2016) | 1 line
Changed paths:
   M /trunk/Watch.toc

Update .toc


  • To post a comment, please or register a new account.
Posts Quoted:
Clear All Quotes