Skip to content

UnrealSolutionsLtd/BugButton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BugButton

Frictionless playtesting and bug reporting for Unreal Engine games.

a0462680-4bbd-4e08-a094-4d181be21669

BugButton continuously records the last 30-60 seconds of gameplay in a ring buffer. When a bug occurs, press the bug button to instantly save an MP4 video - perfect for QA, playtesting, and bug reports!

✨ Features

  • 🎥 Continuous Recording - Always recording the last N seconds in memory
  • Zero Performance Impact - Runs on separate thread, no game hitches
  • 🐛 Instant Bug Capture - One button press saves MP4 replay
  • 🎮 Windows Only - Optimized for Windows with hardware acceleration
  • 📦 Simple API - Just 3 functions: Start, Save, Stop

🚀 Quick Start

Blueprint

  1. Start Recording (e.g., in BeginPlay):
Get BugButton Recorder -> Start Recording (30 seconds, Include UI: true)
  1. Save Replay when bug happens (e.g., bind to a key):
Get BugButton Recorder -> Save Replay ("%auto%")
  1. Stop Recording when done (optional):
Get BugButton Recorder -> Stop Recording

C++

#include "BugButtonRecorder.h"

// Start recording
UBugButtonRecorder* Recorder = GEngine->GetEngineSubsystem<UBugButtonRecorder>();
Recorder->StartRecording(30.0f, true); // 30 seconds, include UI

// Save replay when bug occurs
Recorder->SaveReplay(TEXT("%auto%")); // Auto-generates filename in Saved/BugReports/

// Stop recording
Recorder->StopRecording();

📋 API Reference

StartRecording(BufferSeconds, bIncludeUI)

Start continuous recording.

  • BufferSeconds: How many seconds to keep (30 or 60 recommended, max 60)
  • bIncludeUI: Include UI/widgets in recording (default: true)
  • Returns: True if started successfully

SaveReplay(Filename)

Save the last N seconds to MP4. Recording continues automatically!

  • Filename: Where to save (use "%auto%" for automatic naming in Saved/BugReports/)
  • Returns: True if save initiated successfully

StopRecording()

Stop recording and clear buffer.

IsRecording()

Check if recording is active.

GetLastSavedFile()

Get path to last saved video.

GetBufferSeconds()

Get current buffer duration.

📁 Output Location

Videos are saved to:

  • Auto mode ("%auto%"): <Project>/Saved/BugReports/YYYY-MM-DD_HH-MM-SS.mp4
  • Custom path: Wherever you specify

🎯 Use Cases

Game Development

  • Playtesting: Testers can instantly capture bugs without stopping gameplay
  • QA: Automatic video evidence for every bug report
  • Speedrunning: Capture unexpected glitches or cool moments

Example: Bug Report Button

// Bind to F9 key
if (InputComponent)
{
    InputComponent->BindKey(EKeys::F9, IE_Pressed, this, &AMyCharacter::OnBugButton);
}

void AMyCharacter::OnBugButton()
{
    UBugButtonRecorder* Recorder = GEngine->GetEngineSubsystem<UBugButtonRecorder>();
    if (Recorder->IsRecording())
    {
        Recorder->SaveReplay(TEXT("%auto%"));
        // Show UI notification: "Bug replay saved!"
    }
}

🔧 Technical Details

  • Platform: Windows only (uses Windows Media Foundation)
  • Format: H.264 MP4 (20 Mbps, high quality)
  • Resolution: Auto-detects from viewport (1920x1080 typical)
  • FPS: 30 FPS (good balance of quality and file size)
  • Memory: ~500MB for 30 seconds at 1080p

📝 Events

Subscribe to events in Blueprint or C++:

  • OnRecordingStarted: Fired when recording begins
  • OnRecordingStopped: Fired when recording stops
  • OnReplaySaved: Fired when MP4 is saved (provides file path)

Features & Limitations

  • Windows only (no Mac/Linux/Console support)
  • Fixed 30 FPS output
  • Maximum 60 second buffer

The following features are available only in FULL version:

  • Android, iOS, Mac, Linux, Oculus
  • Automated test recording and video sharing
  • Audio recording (video only)

Please send email to business@unrealsolutions.com to discuss your needs!

🤝 Credits

Based on simplified version of Runtime Video Recorder.

Simplified and optimized for the bug reporting use case.

📄 License

MIT license.


Happy Bug Hunting! 🐛🎥

About

BugButton - simple way to record bugs in your game

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published