
Echo
Hear what your game is telling you with advanced debug logging!
Echo is a lightweight but surprisingly powerful debug logger for GameMaker, that also now comes with Echo Chamber, a fully featured debug UI builder!
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.
Buy Statement or Pulse (or both in a bundle for a discount) and get Echo free!
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 usingeEchoDebugLevel(fromNONEthrough toCOMPLETE). 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 asINFO,WARNING, orSEVERE. 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 theECHO_DEBUG_ENABLEDmacro, 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.
Now comes with Echo Chamber!
A simple to use but quite powerful UI builder designed specifically for creating debug UIs.
Features (are you ready? because it's a long list)
- A managed "desktop" experience that captures input, processes the active window, and handles drawing everything automatically.
- Windows have "real" window behaviour, such as dragging, resizing, z-order, bring-to-front, minimise and close, fit to content, and plenty more.
- Window panels allow docking and fill layouts (dock a panel to the top of a window and allow the panel below it to fill the rest of the space), and panel collapsing (a simple click can collapse an entire panel).
-
Panels also have custom draw hooks, which is how I display the state nodes in
Statement's visual debugger: Lens, which is entirely built from Echo Chamber:

- Each window can have its own hotkeys and input assigned, while allowing inheritance of default inputs.
- Clipping and hit testing that respect window, panel, and control flow.
- Scrollable areas, tooltips with delay, toasts (have a brief notification appear in the bottom right of the window).
- Overlays consume input (dropdown menus will not activate buttons underneath them when clicked).
- Plenty of control primitives like buttons, toggles, wrapped text display, input text boxes, dropdown menus, etc.
- Ability to save/load window layout (including z-order and panel states).
- Completely theme-able. Create your own colour schemes and easily skin windows, with the ability to override individual elements with specific styles.
- Tab can jump through focusable elements.
- And more...
As you can see, I've really tried to handle as many of the annoying pain points that come up when trying to create complex UI setups as possible, making Echo Chamber perfect for complex debugging setups.
I have plans to extend it into a full HUD builder for actual games, but right now it is not fully optimised for that kind of usage, so I would discourage it in most scenarios.
Included in the download
- Echo script library.
- Echo Chamber script library.
Echo docs:
https://refreshertowel.github.io/docs/ech
Requirements
- GameMaker 2024.8+ or later (requires gpu_set_scissor() function).
Support and feedback
If you run into issues or have ideas for improvements:
-
GitHub Issues (bug reports and feature requests):
https://github.com/RefresherTowel/Echo/issues -
Discord (questions, discussion, show and tell):
https://discord.gg/w5NWDBwNta
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.
| Updated | 17 hours ago |
| Published | 20 days ago |
| Status | Released |
| Category | Tool |
| Author | RefresherTowel |
| Made with | GameMaker |
| Tags | debug, game-development, GameMaker, gml, library, logger, logging, sourcecode, tool, utility |
| Links | GitHub |
Purchase
In order to download this tool you must purchase it at or above the minimum price of $4.99 USD. You will get access to the following files:


