UE 5.4+ — Free During Launch

Catch Performance
Regressions Before Players Do

Automated frame budget testing for Unreal Engine 5. Quick Capture any map from the editor, compare against baselines, and see pass/fail results — then scale to CI gating and rich reports when you're ready.

UE 5.4 – 5.5+ Win64, Linux & Mac Source Included No Online Dependency
PerfGuard CLI running a 3-scenario suite showing PASS/FAIL results with regression details
Built for UE 5.4–5.5+
Win64, Linux & Mac
CI/CD Ready Out of the Box
Statistical Rigor Built In
773 Automated Tests

Everything You Need to Guard Performance

From scenario authoring to CI gating — PerfGuard covers the full performance regression workflow.

Quick Capture

Right-click any map in the Content Browser and get Frame Time, GPU Time, Draw Calls, and Memory in seconds. No scenario setup, no Level Sequence, no CLI — instant profiling from the editor.

In-Editor Results

View pass/fail results, baseline vs. current values, and deltas directly inside Unreal Editor. No browser or terminal required — open PerfGuard > Results Panel and see everything at a glance.

Scenario-Based Testing

Define test scenarios as UE Data Assets with three capture modes: Level Sequences for deterministic camera flythroughs, Replays for gameplay-driven scenarios, or Duration Only for static scene profiling. Configure warmup, stat selection, and thresholds — all in the editor.

Baseline Management

Record baselines from known-good builds, store as JSON, compare on every PR. Per-platform, per-scenario baselines with export/import for version control.

Rich HTML Reports

Self-contained reports with trend charts, frame time histograms, hitch analysis, executive summaries, and dark mode. Works offline — no external services.

CI/CD Integration

Drop-in configs for GitHub Actions, Jenkins, GitLab CI, and BuildGraph. PR comment bots, exit codes for gating, and JSON output for dashboards.

Hitch Detection & Analysis

Automatic detection of frame spikes with severity classification (mild/moderate/severe), per-hitch bottleneck attribution (GPU/Game Thread/Render Thread), and cluster drill-down.

Statistical Analysis

IQR outlier trimming, percentile aggregation (P50/P95/P99), confidence intervals, coefficient of variation detection, and thermal throttle identification.

Webhook Notifications

Get alerted on regressions via Slack, Microsoft Teams, or generic JSON webhooks. Conditional posting — only fires when something regresses.

Frame Budget Presets

Built-in 30fps, 60fps, and VR 90fps budget presets with automatic threshold configuration. One flag to enforce your target frame rate.

Gauntlet Integration

Headless test execution via UE's Gauntlet framework. Full state machine lifecycle (Init → LoadMap → Warmup → Capture → Finish) with timeout protection.

Insights Trace Integration

RHI-level GPU timings via UE Insights traces. Per-pass GPU breakdown charts, draw call detail tables, and an "Open in Insights" launcher for deep investigation.

PR Comment Bots

Automated PR/MR comments with formatted stat tables showing exactly what changed. GitHub Actions and GitLab CI configs included — reviewers see perf impact at a glance.

Blueprint API

Full subsystem exposed to Blueprint: CSV capture, sequence/replay playback, baseline I/O, and four multicast delegates. Build custom performance UIs and integrate captures into gameplay events.

PDF Export

Generate print-ready PDFs from HTML reports via headless Chrome. One flag (--pdf), zero external Python dependencies. Share results with stakeholders who prefer documents over dashboards.

Noise Floor Estimation

Per-metric noise floor from multi-run variance or single-run frame data. Warns when regression thresholds are below measurement precision — prevents false positives from hardware noise.

Capture Quality Validation

Engine-level health checks detect GPU time gaps, sequence stalls, warmup instability, and thermal throttling. Configurable warning and failure thresholds with diagnostic cards in reports.

Manual Profiling vs. PerfGuard

What takes hours of manual work every milestone becomes an automated check on every commit.

Workflow
Manual Profiling
With PerfGuard
Setup per test
Open editor, load map, set up Stat commands, wait
Define once as a Scenario asset
Reproducibility
Varies by who runs it and when
Deterministic Level Sequence or Replay playback
CI integration
Not possible — requires a human
Runs headlessly, returns exit codes, posts PR comments
Historical tracking
Spreadsheets, if anyone remembers
Automatic history with trend graphs
Reporting
Screenshots and Slack messages
Rich HTML reports with charts, hitch analysis, GPU breakdown
Team visibility
One person knows, everyone else guesses
Dashboard, webhooks, and CI artifacts for the whole team

Three Steps to Performance Confidence

Start profiling right from the editor. Captures run in a standalone game process for accurate timings.

1
Quick Capture context menu in UE Content Browser

Quick Capture

Right-click any map in the Content Browser and select PerfGuard: Quick Capture. A standalone game process captures Frame Time, GPU Time, Draw Calls, and Memory. Your first run records a baseline automatically.

2
PerfGuard scenario details and results in Unreal Editor

Compare & Review

Run Quick Capture again after making changes. PerfGuard compares against the baseline and shows pass/fail results in PerfGuard > Results Panel — all inside the editor.

3
PerfGuard HTML report showing FAIL banner with scenario summary

Scale to CI

When you're ready, add HTML reports, CI gating, and webhook alerts. Compare on every commit and fail the build when regressions exceed your thresholds.

See PerfGuard in Action

A real dashboard and report generated from Unreal Engine profiling data. Click any run to see its full report.

reports/index.html

Built for Production Teams

Every feature designed for real-world game development workflows.

📊 8 Built-in Performance Stats + Custom CSV Support

Track the metrics that matter most to your project:

  • FrameTime — Total frame time in milliseconds
  • GameThreadTime — Main game thread CPU work
  • RenderThreadTime — Render thread CPU work
  • GPUTime — GPU processing time
  • DrawCalls — Number of draw commands per frame
  • TrianglesDrawn — Total triangle count rasterized
  • PhysicalMemoryMB / VirtualMemoryMB — Memory usage tracking
  • Any Custom CSV Column — Capture any stat from UE's CSV profiler

Each stat supports configurable aggregation: Average, Median (P50), P95, P99, or Maximum.

🔍 Advanced Hitch Detection & Bottleneck Classification
  • Automatic detection of frame time spikes above configurable thresholds
  • Hitch clustering groups nearby spike frames together
  • Three severity levels: mild, moderate, severe
  • Per-hitch bottleneck attribution: GPU, Render Thread, Game Thread, or Unknown
  • Context frames before and after each hitch for debugging
  • Frame pacing quality metrics for smoothness analysis
💪 Statistical Rigor & Data Quality
  • IQR Outlier Trimming — Tukey fence method removes spurious one-frame noise
  • Configurable Warmup — Skip 30–300 initial frames for stable captures
  • Minimum Sample Enforcement — Validates capture has enough frames for statistical significance
  • Confidence Intervals — Multi-run aggregation with CI computation
  • Coefficient of Variation — Flags volatile stats that may produce false positives
  • Thermal Throttle Detection — Identifies upward frame time trends caused by thermal throttling
  • Threshold Recommendations — Analyzes multi-run variance to suggest safe thresholds
🚀 CI/CD Pipeline Support (5 Platforms)
  • GitHub Actions — Full workflow + PR comment bot with stat tables
  • Jenkins — Jenkinsfile with artifact archival and HTML publishing
  • GitLab CI — Multi-stage pipeline with MR note posting
  • BuildGraph / Horde — Node template for Epic's CI system
  • Generic / Local — Shell wrapper with auto-detection for any CI

All configs include: structured JSON output, exit code gating (0=pass, 1=regression, 2=error), artifact upload, and report publishing.

📋 Self-Contained HTML Reports
  • Single HTML file with all CSS, JS, and data embedded — no external dependencies
  • Chart.js charts rendered inline (bundled, works fully offline)
  • Sections: Banner, Executive Summary, Per-Scenario Tables, Trend Graphs, Frame Time Histograms, Hitch Analysis, Memory Trends, Performance Diagnostics
  • Dark mode with automatic system preference detection
  • Print-friendly CSS for PDF export
  • Responsive layout (works on mobile)
  • Collapsible detail sections with tooltips and metric explanations
  • CSV export of table data
🔌 Gauntlet Headless Test Execution
  • Full state machine lifecycle: Init → LoadMap → Warmup → Capture → Finish
  • Async map loading with configurable timeout
  • Level Sequence playback validation
  • Automatic CSV profiler start/stop
  • Headless execution with -RenderOffScreen (GPU stats remain valid)
  • Timeout protection at every stage to prevent deadlocks
  • Works via direct editor invocation — no RunUAT C# discovery required
🔔 Webhook Notifications (Slack, Teams, Generic)
  • Slack Block Kit formatted messages with stat breakdowns
  • Microsoft Teams MessageCard format with facts tables
  • Generic JSON payload for custom webhook endpoints
  • Conditional posting — only fires on regression
  • Mention support (@oncall, @channel) for immediate triage
  • Links to full report and CI artifacts in notification
📄 Multi-Scenario Suite Configuration
  • Define all scenarios in a single suite.json file
  • Global and per-scenario threshold overrides
  • Per-scenario warmup configuration
  • Build label tracking for trend correlation
  • Platform specification per suite
  • Webhook configuration at suite level
  • Single command executes entire test suite with combined report
Insights Trace Integration (GPU Deep-Dive)
  • PerfGuardTraceExportCommandlet — Reads .utrace files and exports GPU pass/RHI data as JSON
  • Per-GPU-pass breakdown charts in HTML reports (base pass, shadows, translucency, post-process)
  • Per-draw-call detail tables for granular investigation
  • RHI counter aggregation (async compute, dispatch details)
  • "Open in Insights" launcher for seamless handoff to UE's native profiler
  • Controlled per-scenario via bCaptureTrace property or globally via --no-trace CLI flag
  • Automatic .utrace capture during Gauntlet runs when enabled
📈 Historical Trend Tracking
  • Automatic history recording on every comparison run
  • Per-stat trend graphs in HTML reports (last N runs)
  • Inline sparklines in comparison tables
  • CLI history viewer: perfguard history show --stat FrameTime
  • Auto-pruning to keep storage manageable (last 100 entries)
  • JSON-backed storage for easy integration with external dashboards

Fits Into Your Pipeline

Drop-in configuration files for every major CI system. Auto-detection handles the rest.

GitHub Actions
Workflow + PR Comment Bot
Jenkins
Jenkinsfile + HTML Publisher
GitLab CI
Pipeline + MR Notes
BuildGraph
Horde Node Template
# .github/workflows/perfguard.yml name: Performance Gate on: [pull_request] jobs: perf-test: runs-on: self-hosted steps: - uses: actions/checkout@v4 - name: Run PerfGuard run: perfguard run suite.json --mode compare - name: Upload Report uses: actions/upload-artifact@v4 with: name: perf-report path: Saved/PerfGuard/Results/report.html
// Jenkinsfile pipeline { agent { label 'gpu' } stages { stage('Performance Test') { steps { sh 'perfguard run suite.json --mode compare' } } } post { always { archiveArtifacts 'Saved/PerfGuard/Results/**' publishHTML([reportDir: 'Saved/PerfGuard/Results']) } } }
# Works with any CI system # Auto-detects GitHub Actions, Jenkins, GitLab, or generic ./perfguard-ci.sh \ --suite suite.json \ --mode compare \ --budget 60fps # Exit codes: # 0 = All checks passed # 1 = Performance regression detected # 2 = Error (bad config, missing files)

Learn PerfGuard

Step-by-step guides to get you from zero to automated performance testing.

PerfGuard CLI initializing project directories
Beginner

Quick Start: Your First Performance Test

Install the plugin, create your first scenario, record a baseline, and run a comparison — all in under 15 minutes.

Start Tutorial →
PerfScenario asset hierarchy in Content Browser
Beginner

Authoring Performance Scenarios

Author scenarios with Level Sequences, Replays, or Duration Only captures. Configure stat tracking, warmup frames, Insights traces, and organize with tags.

Start Tutorial →
Blueprint graph showing PerfGuard subsystem capture workflow
Intermediate

Blueprint API

Use PerfGuard entirely from Blueprint — one-button captures, warmup countdowns, live frame time displays, and automated scenario runners without writing C++ or Python.

Start Tutorial →
PerfGuard replay recording controls in the editor Details panel
Intermediate

Replay System Tutorial

Record gameplay sessions, benchmark them as repeatable performance tests, and detect regressions in combat, AI, physics, and streaming workloads.

Start Tutorial →
PerfGuard CLI recording a baseline with aggregated stats
Intermediate

Managing Baselines

Record, compare, export, and import baselines. Learn per-platform baseline strategies and threshold tuning for your project.

Start Tutorial →
PerfGuard multi-run CI pipeline output
Intermediate

CI/CD Pipeline Setup

Configure PerfGuard in GitHub Actions, Jenkins, or GitLab CI. Set up PR gating, artifact archival, and Slack notifications.

Start Tutorial →
PerfGuard HTML report banner showing FAIL status
Intermediate

Reading Performance Reports

Understand every section of the HTML report: executive summary, stat tables, trend charts, hitch analysis, and diagnostics.

Start Tutorial →
PerfGuard multi-run statistical analysis CLI
Advanced

Advanced: Threshold Tuning & Multi-Run Analysis

Use auto-threshold recommendations, multi-run confidence intervals, and CoV detection to eliminate false positives and catch real regressions.

Start Tutorial →
PerfGuard report highlighting GPU regression metrics
Advanced

Diagnosing GPU Regressions

When PerfGuard flags a GPU regression, here’s how to find it: draw calls, overdraw, Lumen, VSM, Nanite, shader complexity, and RHI stalls.

Start Tutorial →
PerfGuard report highlighting CPU regression metrics
Advanced

Diagnosing CPU Regressions

Game thread vs render thread, tick budgets, Blueprint overhead, physics, AI, GC spikes, and a systematic investigation workflow.

Start Tutorial →
PerfGuard test architecture diagram showing component relationships
Intermediate

Performance Testing Best Practices

Hardware isolation, thermal management, scenario design, threshold tuning philosophy, CI architecture, and lessons from shipping titles.

Start Tutorial →

Simple, One-Time Pricing

Full source at every tier. Scale seats and support as you grow. No subscriptions.

🎉
Launch Offer — Free for a Limited Time Download PerfGuard at no cost while we gather early feedback. Regular pricing will apply once the launch period ends.

Indie

For solo developers and small teams.

$79 Free
Limited time · 1 seat
  • Full C++ plugin source code (3 modules)
  • Python CLI tooling & CI configs
  • Interactive HTML reports
  • All stats, analysis & trace integration
  • Win64, Linux & Mac support
  • Community support (GitHub Issues)
Get Free on FAB

Enterprise

For large studios needing unlimited seats and dedicated support.

Contact Us
Custom licensing · Unlimited seats
  • Everything in Studio
  • Unlimited seats
  • Dedicated support channel
  • Onboarding & integration assistance
  • Custom feature requests
Get in Touch

Frequently Asked Questions

Which Unreal Engine versions are supported?
PerfGuard is built for UE 5.4 and tested on 5.4–5.5. UE 5.3 is not supported. It uses standard engine APIs (Gauntlet, CSV Profiler, Level Sequences, Asset Registry) so 5.6+ is expected to work as well. We will update the compatibility matrix as new engine versions ship.
What platforms are supported?
PerfGuard supports Win64, Linux, and macOS for editor and runtime use. The CLI tools work on all three platforms. Console and mobile platforms (PlayStation 4/5, Xbox One/Series X, Nintendo Switch, Android, iOS) are also supported for runtime capture and CLI analysis — you run the game on the target device and analyze the CSV output on your desktop.
Do I need Python installed?
Yes, Python 3.11+ is required. Even the editor-only workflow (Quick Capture, Run Standalone) uses Python behind the scenes to record baselines and compare results after each capture. On Windows, run Tools\Launchers\setup_python.bat for a one-click portable install — no admin rights needed. On Linux/Mac, most systems already have Python 3.11+. Without Python, captures still run but baseline comparison is skipped.
Does PerfGuard require an internet connection?
No. PerfGuard is fully self-contained and works offline. HTML reports embed Chart.js locally. There is no telemetry, cloud backend, or license server. Webhook notifications are optional and only fire if you configure them.
How does it compare to UE's built-in profiling tools?
UE's profiling tools (Unreal Insights, stat commands, CSV Profiler) are designed for manual investigation. PerfGuard automates the workflow: it captures profiling data via scenarios, compares against baselines, and produces pass/fail verdicts for CI. Think of it as the automation layer on top of UE's existing profiling infrastructure.
Can I use custom stats beyond the 8 built-in ones?
Yes. Any column in UE's CSV profiler output can be tracked. The 8 built-in stats cover the most common metrics, but you can add any custom stat by referencing its CSV column name in your scenario configuration.
Is source code included?
Yes. Full C++ source for all three UE modules (Runtime, Editor, Tests) and all Python CLI tools are included. No obfuscation, no binary-only modules.
What about team/studio licensing?
All tiers include the same features and full source code. During the launch period, Indie and Studio tiers are free. Once regular pricing begins, Indie ($79) covers 1 seat with community support and Studio ($199) covers up to 10 seats with email support and priority bug fixes. Enterprise offers unlimited seats with dedicated support — contact us for custom pricing.

Stop Shipping Regressions

Add automated performance testing to your UE5 project today — free during launch.