A downloadable tool

Buy Now$2.99 USD or more

Hear what your game is telling you with advanced debug logging!

Echo is a lightweight but surprisingly powerful debug logger for GameMaker.

Your game is already telling you what is happening; Echo helps you actually hear it. Swap scattered show_debug_message() calls for level based logs with tags, optional stack traces, and a history buffer you can dump to a file when something gets weird.

Echo is designed to stay out of the way until you need it, then give you a clear picture of what your game is doing without spamming every build forever.

Join the Echo discord channel


What Echo does

Instead of this:

show_debug_message("Player created");
show_debug_message("HP: " + string(hp));
show_debug_message("Some AI thing went wrong");

You do this:

EchoDebugInfo("Player created", "Player");
EchoDebugWarning("HP low: " + string(hp), "Combat");
EchoDebugSevere("Unhandled AI state", "AI");

Now you can:

  • Turn logs on or off by level.
  • Filter by tag (for example, only see "AI" or "Physics" logs).
  • Get automatic stack traces when something serious happens.
  • Capture a rolling history and dump it to a timestamped log file.

When you are ready to ship, flip the ECHO_DEBUG_ENABLED macro to false and Echo quietly steps aside so your release builds are not full of noise.


Key features

  • Level based filtering
    Control how noisy your logs are using eEchoDebugLevel (from NONE through to COMPLETE). Keep things quiet most of the time, then crank it up when you are chasing a bug.
  • Tag based filtering
    Give each log one or more tags (for example "AI", "Physics", "UI") and tell Echo which tags you care about right now. Great for narrowing in on one system in a big project.
  • Per message urgency
    Mark logs as INFO, WARNING, or SEVERE. Echo uses this to decide when to force logs through and when to attach stack traces.
  • Optional stack traces
    Severe logs and high detail levels can automatically include a call stack, so you know exactly how you got to a bad state.
  • Rolling history buffer
    Echo keeps a history of recent logs so you can inspect them directly or dump them to a timestamped text file when something goes wrong on a tester or player machine.
  • Macro driven on / off switch
    All of Echo is wired through the ECHO_DEBUG_ENABLED macro, so you can leave calls in your code and choose whether they do full logging, minimal logging, or nothing in each build.
  • Simple, namespaced API
    All functions live under a clear Echo prefix, so they are easy to find in auto complete and do not collide with your own helpers.

Included in the download

  • Echo script library for GameMaker (GML 2.3+).
  • Example usage showing basic setup and common patterns.
  • A link to the full online documentation.

Echo docs:
https://refreshertowel.github.io/docs/echo/


Statement bundle

Echo is also bundled for free with my state machine framework, Statement. If you already own Statement, you already have Echo and do not need to buy it separately. This standalone Echo page is for people who just want the debug logger on its own.

Statement docs:
https://refreshertowel.github.io/docs/statement/


Requirements

  • GameMaker 2.3 or later (GML with structs and methods).

Support and feedback

If you run into issues or have ideas for improvements:

I have been using Echo in my own projects to keep debugging sane, and I hope it makes tracking down problems in your games a lot less painful too.

Purchase

Buy Now$2.99 USD or more

In order to download this tool you must purchase it at or above the minimum price of $2.99 USD. You will get access to the following files:

EchoDebugLogger_v1.yymps 5.5 kB