👁️‍🗨 LiveWatch | Debug with full history of changes

LiveWatch is a powerful debugging tool for real-time monitoring of any variable type, with a full history of changes.

Tired of spamming Console with endless values to find bugs? Want to monitor not just the current game state but the entire history of changes? Introducing LiveWatch — the unique debugging tool that lets you track any variable of any type with every change recorded. Experience the full history of your values, utilize advanced search queries, apply conditional formats, and much more!

:link: USEFUL LINKS :link:
Quick start | Manual | Reference API | Support | Discord

:rocket: KEY FEATURES :rocket:

  • Full Change History :scroll:
    Capture every change in your variables over time, making it easy to monitor the state of your game or identify sophisticated bugs. Minimal setup required.

  • Any type supported :hammer_and_wrench:
    Watch any possible type — basic types (int, string, bool, float, double, etc.), collections (Dictionary, List, Array, HashSet, etc.), or any other classes from Unity or your own. No Reflection is used at runtime for complex types to achieve maximum performance.

  • Powerful search :mag:
    Utilize complex queries to search through all recorded values based on their types and variable names. Queries are unlimited and connected via boolean operators, providing infinite possibilities.

  • Advanced customization :art:
    Change the color format for any variable name or value to highlight important data, including conditional formats based on the values themselves.

  • Adjustable view :straight_ruler:
    Modify height and width in Cell mode using simple shortcuts based on your needs, or switch to Graph mode to visualize the maximum amount of data changes over time.

  • Extra text :memo:
    Add metadata to every pushed value, giving more context about what caused the change. Inspect automatically added stack traces if an exception occurs during the update of your variable.

  • Flexible API :arrows_counterclockwise:
    Add new watches with a single call, and they will be tracked automatically. Or you can push values directly from anywhere in your project as often as needed. All features are accessible through a versatile, well-documented API.

  • Save/Load functonlaity :floppy_disk:
    Store your variable data as binary files and inspect the recorded values on different devices or projects, providing you with enhanced debugging capabilities.

:hourglass_flowing_sand: CURRENT LIMITATIONS :hourglass_flowing_sand:
LiveWatch is a powerful tool, though not without its limits. Many of these current limitations are temporary and will be resolved in version 2.0.0.

  • LiveWatch uses code generation, making it significantly faster than System.Reflection-based solutions. It can handle many variables efficiently, but tracking complex variables may still impact performance, so use it carefully.

  • Due to code generation, LiveWatch cannot monitor non-public members in custom-generated types. To track them, you’ll need to watch these variables directly or expose them via public properties.

  • Currently, LiveWatch is available only in the Unity Editor. For build use, you can save variable data to a binary file and inspect it in the Editor. Remote debugging capabilities are coming soon.

If you have any inquiries or need assistance, feel free to ask questions! :bulb:

4 Likes

New version 1.0.2 is live!

Changelog:

  • Fixed error preventing non-dev builds
  • Improved performance of SetSortOrder (regenerate your watches to apply these changes)
  • Partially reduced generated code size (more changes in the next update)

Also we created a Discord server for supporting and discussion LiveWatch. Feel free to join to provide some feedback, report bugs or just ask questions regarding the tool if you consider buying it!