Lightweight GML script that drops into any GameMaker Studio 2+ project. Crash reports, player feedback, and session data — all in one dashboard.
Sign up for freeAdd Bugnet to your GameMaker project with a few lines of GML. No extensions required.
/// Create Event — persistent controller object bugnet_init("YOUR_API_KEY", "https://api.bugnet.io"); /// Report a bug from your game bugnet_report_bug( "Player fell through floor", "Happened on level 3 near the bridge", "gameplay", // category "high" // priority ); /// Show the built-in report widget (Draw event) bugnet_draw_widget(); /// Toggle widget with a key press (Step event) if (keyboard_check_pressed(vk_f1)) { bugnet_show_widget(); } /// Async HTTP event (required) bugnet_async_http();
Pure GML. Drop into your scripts folder — no extensions or DLLs needed.
Error messages with the current room, platform, and device info.
One-call screenshot capture from any surface, attached to every report.
A timeline of the player's recent clicks, key presses, and mouse movement before the report (Studio Plus).
Native GML script for GameMaker Studio 2 and GameMaker 2024+. No extensions needed.
Windows, macOS, Linux, HTML5, and mobile. One script, every target GameMaker supports.
Create a Script asset in GameMaker and add BugnetSDK.gml. Call bugnet_init() in a controller object's Create event and add your API key.
Players submit bug reports directly from your game. Screenshots, device info, and session data are captured automatically.
Triage reports in your Bugnet dashboard, assign priorities, and track fixes on a public bug tracker your players can follow.
“As a solo dev, players were leaving faster than I could read Discord. Bugnet showed me exactly which bugs were causing the most churn. I fixed the top three and my retention rate doubled in two weeks.”
New to GameMaker or weighing your options? Read our in-depth GameMaker guide, or compare every major engine side by side in Best game engines for indie developers.
Run the installer from the folder with your .yyp file, or create a script named BugnetSDK and paste in BugnetSDK.gml. Call bugnet_init() with your API key from the Create event of a persistent controller object placed in your first room.
GameMaker has no background threads, so the SDK works through the events of one persistent object. Its Async - HTTP event must call bugnet_async_http(); without it, reports and uploads never complete. Draw GUI draws the report widget.
Pass the exception from a try/catch block to bugnet_exception_handler(), or call bugnet_capture_error() with your own message and callstack. Each error is sent with the platform, OS and your game version, and identical errors are grouped so you can see how many players each one reaches.
Yes. The built-in widget lets players describe a problem and sends a screenshot with it, or you can file reports from your own menus with a single function call and attach a buffer or file such as a save game.
The free plan includes up to 100 bug reports in total (a lifetime cap, not a monthly allowance), which is plenty to integrate the SDK and run a playtest. Paid plans raise the limits and add features such as session replay.
Join hundreds of indie studios using Bugnet to turn bug reports into player loyalty.