GodotPulse is a professional in-game, toggleable runtime performance overlay and diagnostics plugin for Godot 4 .NET projects.
GodotPulse provides real-time performance monitoring directly in your game with minimal overhead. Toggle the overlay during gameplay with a hotkey to inspect engine metrics, .NET runtime statistics, and custom metrics.
- In-game performance overlay - toggle with F3 during gameplay
- Runtime metrics: managed heap size, GC collections (Gen 0/1/2), GC pause durations
- Engine metrics: FPS, frame time, draw calls, VRAM, physics bodies, node counts
- GC visualization on FPS graph (red flash when GC occurs)
- Custom metrics API for game-specific tracking
- Event log for performance events
- Automatically disabled in release builds (configurable)
- Customizable hotkey via Project Settings
- Zero overhead when disabled
| Requirement | Version |
|---|---|
| Godot | 4.2+ |
| .NET | 8.0+ |
| Build Type | Godot with .NET support enabled |
| Platforms | Windows, Linux (desktop exports primary; mobile tested) |
- Download the latest release from Releases
- Copy
addons/godot_pulseto your project'saddons/directory - Enable the plugin in Project → Project Settings → Plugins
- Done! The autoload will initialize automatically
Toggle the overlay:
- Press
F3during gameplay (or bind a custom key in Project Settings > Input Map > godot_pulse_toggle)
Track custom metrics:
// Register a metric
GodotPulse.RegisterMetric("AI/Enemies", () => EnemyManager.Count);
// Log performance events
GodotPulse.LogEvent("Boss spawned", GodotPulse.EventLevel.Warning);See full documentation for the complete API.
Using Godot Asset Library (recommended):
- Open Asset Library in the Godot editor
- Search for "GodotPulse"
- Download and install
Manual installation:
- Download the latest release from Releases
- Extract
addons/godot_pulseto your project'saddons/folder - Enable the plugin in Project Settings > Plugins
From source:
git clone https://github.com/Synaptikal/GodotPulse.git
cp -r GodotPulse/addons/godot_pulse your-project/addons/| Feature | Status |
|---|---|
| Export Builds | Automatically disabled in release builds |
| Multiplayer | Each peer has independent overlay instance |
| Mobile (Android/iOS) | Requires System.Text.Json support testing |
| GDScript Integration | Full C# ↔ GDScript interoperability |
Interested in contributing? Check out CONTRIBUTING.md for guidelines on code style, bug reports, feature proposals, and PRs.
- Draw call tracking uses GDScript management and manual buffer setup
- System.Text.Json availability depends on Godot .NET SDK and platform
- Resource paths (res://) are read-only in exports; metric export uses user:// only
- With Overlay Off: Negligible (< 0.1ms per frame)
- With Overlay On: 1-3ms per frame depending on resolution and graph complexity
This project is licensed under the MIT License - see LICENSE file for details.
See CHANGELOG.md for version history and release notes.
Justin Davis - Synaptikal