Automated preflight QA for Fab marketplace submissions. Runs inside Unreal Engine — editor or commandlet.
Demo video coming soon
Fab submissions get rejected for mechanical issues — broken references, missing collision, non-power-of-2 textures, messy folder structures. These are checkable problems, but there's no automated tool to catch them. FabReady is that tool.
FabReady validates whatever is in your project. Rules are asset-type-aware — they automatically apply to the content you have.
Meshes, materials, textures, showcase levels
Collision, LODs, lightmaps, scale, naming
Power-of-2, max resolution, sRGB correctness
Compile errors, references, naming
Full project — all 18 rules fire
Pack structure, plugin zip, folder layout
18 rules across Structure, Assets, Meshes, Textures, Naming, Blueprints, and Audio. All rules are free — always.
| Rule | Category | ID |
|---|---|---|
| Pack structure | Structure | fab.structure.pack_structure |
| Plugin zip integrity | Structure | fab.structure.plugin_zip |
| Single root folder | Structure | fab.structure.single_root |
| Showcase map presence | Structure | fab.structure.showcase_map |
| Stale redirectors | Assets | fab.assets.redirectors |
| Unused assets | Assets | fab.assets.unused |
| Broken references | Assets | fab.assets.broken_references |
| Duplicate names | Assets | fab.assets.duplicate_names |
| Missing collision | Meshes | fab.meshes.collision |
| LOD presence | Meshes | fab.meshes.lod_presence |
| Lightmap UV | Meshes | fab.meshes.lightmap_uv |
| Import scale | Meshes | fab.meshes.scale_validation |
| Material slots | Meshes | fab.meshes.material_slots |
| PoT & max size | Textures | fab.textures.validation |
| sRGB / Linear | Textures | fab.textures.srgb_correctness |
| Prefix conventions | Naming | fab.naming.conventions |
| Compile errors | Blueprints | fab.blueprints.compile_status |
| Sample rate & channels | Audio | fab.audio.format_validation |
Window > FabReady > Run Preflight. Results appear in a dockable tab. Fix findings, re-run, iterate.
Commandlet with exit codes (0 = pass, 1 = fail, 2 = fatal). Runs headless. Outputs JSON + HTML reports.
$ UnrealEditor-Cmd.exe MyProject.uproject -run=FabReady -Policy=fab/v0 Loaded policy 'fab/v0' with 18 rules [PASS] fab.structure.pack_structure [WARN] fab.textures.validation — T_Rock: 300x300 not power-of-2 [FAIL] fab.assets.broken_references — M_Rock: missing /Game/T_Deleted [PASS] fab.meshes.collision [WARN] fab.meshes.lod_presence — SM_Tree: 45K tris, no LODs [FAIL] fab.textures.srgb_correctness — T_Normal: sRGB on normal map [PASS] fab.naming.conventions Report: Output/report.html Fingerprint: a3f8c1d2e4b6... Exit code: 1
Every run produces a deterministic report — same project, same output, every time. SHA-1 fingerprinted for auditability.
Human-readable. Findings grouped by severity. Open in any browser. Share with your team.
Machine-readable for CI pipelines. Parse findings, track counts, feed into dashboards.
SHA-1 fingerprint per run. Compare reports to verify fixes. Evidence bundling with integrity hashing.
{
"schema_version": "fabready.report.v0",
"policy_pack_version": "0.1.0",
"run_fingerprint": "a3f8c1d2e4b67890...",
"summary": {
"total_findings": 7,
"errors": 2,
"warnings": 5
},
"findings": [
{
"rule_id": "fab.textures.srgb_correctness",
"severity": "error",
"message": "Normal map has sRGB enabled",
"asset_or_path": "/Game/Textures/T_RockNormal",
"remediation": "Disable sRGB in texture properties"
}
]
}Everything you need for Fab submission validation. Free forever.
Everything in Free, plus studio workflow tools and industry-specific validation packs. Indie and Studio tiers — same features, different seat counts.
Track every preflight run across your team. See pass/fail trends over time.
What changed since last run? What got fixed? What regressed? Side-by-side comparison.
Drop FabReady into Jenkins, GitHub Actions, or any CI system that reads standard test formats.
Create custom rules without C++. Pick asset type, set thresholds, define conditions — like Blueprint vs code.
Manage who runs preflights, who reviews reports, who configures policies.
Direct support channel. Help with rule configuration, CI integration, and custom policies.
| Pack | What It Validates |
|---|---|
| Performance | Texture memory budgets · Mesh/draw call limits · Material complexity scoring |
| AR / VR / XR | Meta Quest triangle budgets · Draw call thresholds · Frame budget validation |
| Virtual Production | OCIO pipeline validation · nDisplay config checks · HDR texture requirements |
| Industrial Viz | Datasmith import validation · Scale accuracy for real-world measurement · Physics property checks |
| Defense Sim | MIL-STD-3014 compliance · DTED terrain accuracy · WGS84 coordinate validation |
All packs use verified UE APIs and published industry standards. No NDA content.
Rules are defined in JSON policy files. Swap policies for different submission targets. Create your own. Severity levels are configurable per-project.
Third-party plugins register custom rules via IFabReadyRuleProvider. Community rules, studio checks, and Pro packs all use the same API.
Some rules fix issues automatically. Redirector cleanup runs unattended — no dialogs, no source control prompts.
Policy pack, rule definition, and report JSON schemas are MIT licensed. Parse FabReady reports in your CI. Create compatible policy packs. Build integrations. No restrictions on the data formats.