UE 5.4+ — Now Available on FAB

Catch Performance
Regressions Before Players Do

Automated frame budget testing for Unreal Engine 5. Record baselines, detect regressions in CI, and get rich HTML reports — all without leaving your pipeline.

UE 5.4 – 5.5+ Win64 & Linux Source Included No Online Dependency
🎬 Hero Screenshot / Video Place a screenshot of PerfGuard in action or a short demo video here Recommended: 1920×1080 screenshot of the UE Editor with PerfGuard scenario panel open
Built for UE 5.4–5.5+
Win64 & Linux
CI/CD Ready Out of the Box
Statistical Rigor Built In

Everything You Need to Guard Performance

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

Scenario-Based Testing

Define test scenarios as UE Data Assets. Link maps, camera paths via Level Sequences, and configure per-scenario warmup, stat selection, and capture duration — 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), bottleneck attribution (GPU/CPU/RT), 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.

Three Steps to Performance Confidence

Set up automated performance testing in under 10 minutes.

1
🎬 Screenshot: Scenario Editor UE Content Browser with PerfScenario asset

Author Scenarios

Create Performance Scenario assets in the Content Browser. Assign a map, a Level Sequence camera path, and pick which stats to track.

2
Screenshot: CLI Running Terminal showing perfguard baseline compare

Record & Compare

Record a baseline from a known-good build. On every commit, compare new captures against it. Regressions fail the build automatically.

3
📊 Screenshot: HTML Report The generated performance report dashboard

Review Reports

Get a rich HTML report with trend charts, hitch analysis, and an executive summary. Share with your team or archive as a CI artifact.

See a Real Performance Report

This is an actual PerfGuard report generated from Unreal Engine profiling data. Explore it interactively below.

sample_report.html — PerfGuard Performance Report

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 downward 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: perfguard_results/report.html
// Jenkinsfile pipeline { agent { label 'unreal-build' } stages { stage('Performance Test') { steps { sh 'perfguard run suite.json --mode compare' } } } post { always { archiveArtifacts 'perfguard_results/**' publishHTML([reportDir: '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.

🚀 Tutorial Screenshot Plugin install in UE editor
Beginner

Quick Start: Your First Performance Test

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

Start Tutorial →
🎬 Tutorial Screenshot Level Sequence editor with camera path
Beginner

Authoring Performance Scenarios

Create Level Sequence camera paths, configure stat tracking, set warmup frames, and organize scenarios with tags.

Start Tutorial →
📈 Tutorial Screenshot CLI baseline commands in terminal
Intermediate

Managing Baselines

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

Start Tutorial →
Tutorial Screenshot GitHub Actions workflow running
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 →
📋 Tutorial Screenshot HTML report with trend charts
Intermediate

Reading Performance Reports

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

Start Tutorial →
🔧 Tutorial Screenshot Advanced threshold configuration
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 →
Tutorial Screenshot GPU profiling in UE editor
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 →
Tutorial Screenshot CPU profiling in UE editor
Advanced

Diagnosing CPU Regressions

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

Start Tutorial →
Tutorial Screenshot Test architecture diagram
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

Pay once, use forever. No subscriptions, no per-seat fees, no online requirements.

Full Source Included

PerfGuard for UE5

Complete plugin with all features, CLI tools, CI configs, and documentation.

$50
One-time purchase · All future updates included
  • Full C++ plugin source code (3 modules)
  • Python CLI tooling (450 tests, 97% coverage)
  • Drop-in CI configs (GitHub, Jenkins, GitLab, BuildGraph)
  • Interactive HTML report generator
  • Webhook notifications (Slack, Teams)
  • Statistical analysis & hitch detection
  • 8 built-in stats + custom CSV support
  • Gauntlet headless test integration
  • Insights trace integration (GPU deep-dive)
  • Win64 & Linux support
  • Comprehensive documentation & tutorials
Buy on FAB — $50

Frequently Asked Questions

Which Unreal Engine versions are supported?
PerfGuard is built for UE 5.4 and tested on 5.4–5.5. It uses standard engine APIs (Gauntlet, CSV Profiler, Level Sequences, Asset Registry) so it is likely compatible with 5.3 and 5.6+ as well. We will update the compatibility matrix as new engine versions ship.
Does it work on Mac?
PerfGuard currently targets Win64 and Linux. macOS is untested but may work with minor adjustments since the plugin uses cross-platform UE APIs. Full Mac support is planned for a future update.
Do I need Python installed?
Yes, the CLI tools require Python 3.11+. Python handles CSV parsing, baseline management, report generation, and CI orchestration. The UE plugin itself (C++) has no Python dependency.
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?
The $50 license follows FAB's standard terms. For studios needing bulk licensing or custom support arrangements, please reach out via the support link below.

Stop Shipping Regressions

Add automated performance testing to your UE5 project today.