Add in-engine log overlay debug tool#2001
Open
Dogebusters wants to merge 4 commits into
Open
Conversation
## File overview ### `engine_log_tap.gd` Captures Godot engine log output. This class extends `Logger` and receives log messages from Godot through `OS.add_logger()`. It stores the latest log lines in memory, keeps the list capped to avoid unbounded growth, and tracks how many old lines were dropped. It handles: - regular log messages - errors - warnings - script errors - shader errors - optional backtraces ### `engine_log_service.gd` Manages the lifecycle of the engine log tool. This service installs and uninstalls the `EngineLogTap`, owns the current logger instance and creates or removes the overlay UI. It acts as the bridge between Settings and the overlay. It handles: - enabling/disabling the engine log capture - adding/removing the logger from `OS` - creating the overlay - forwarding log lines, clear requests, and dropped-line count to the UI ### `engine_log_overlay.gd` Displays the captured logs inside the app. This is the visible debug window. It builds the UI in code, renders the captured log lines, and provides basic controls like pause, clear, and tail-follow. The window can be dragged and resized. On mobile, it also prevents accidental Explorer camera/player movement while interacting with the overlay or near its edges. Signed-off-by: MeanGreenDoge <118309896+Dogebusters@users.noreply.github.com>
…verlay. The scene change only adds the UI entry/checkbox (`CheckButton_EngineLogsEnabled`) and connects it to the settings.gd script. The actual logger installation, overlay creation, and log rendering logic live in the new engine log scripts. Signed-off-by: MeanGreenDoge <118309896+Dogebusters@users.noreply.github.com>
- Creates or finds the engine log service when enabled. - Installs or removes the engine log capture depending on the toggle state. - Keeps the toggle state in sync with the current engine log service state. Signed-off-by: MeanGreenDoge <118309896+Dogebusters@users.noreply.github.com>
Improves mobile interaction with the overlay by making header buttons easier to tap and expanding resize hit areas around the panel. Resize zones are kept above the input blocker so edge/corner resizing still works outside the panel bounds. Signed-off-by: MeanGreenDoge <118309896+Dogebusters@users.noreply.github.com>
kuruk-mm
requested changes
May 11, 2026
kuruk-mm
left a comment
Member
There was a problem hiding this comment.
Hi! Thank you for the Contribution!
We can enable this, but only using the same DEBUG CONSOLE that we have in the PREVIEW.
Check also how it works. We don't instantiate objects if we are not going to use them. Check how the preview works, and try to implement as a new tab there.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds an in-engine log overlay that can be enabled from Developer settings.
This is mainly useful for mobile debugging, where checking engine/runtime logs usually requires adb/logcat. The overlay makes it easier to inspect logs directly in the running app and can later be extended for additional debug output.
Changes
EngineLogTaplogger that captures engine log messages, warnings, script errors, shader errors, and dropped log count.EngineLogServicethat installs/uninstalls the logger and opens the overlay UI.EngineLogOverlayUI for viewing logs in-engine.Screenshots
Screenshots taken on Android, Nothing Phone (1).
Commit overview
Add engine log overlay debug toolAdds the engine log capture service, log tap, and overlay UI.
Add Developer settings toggle for engine logsAdds the Engine Logs toggle to the Developer settings UI.
Wire Engine Logs toggle to serviceConnects the Developer settings toggle with the engine log overlay service.
Fix engine log overlay touch handlingImproves mobile touch handling for overlay buttons, dragging, and resize zones.
Testing
Tested on Android using a Nothing Phone (1)