TofuCheck
TofuCheckUnity Localization / Unreal Engine / Godot

Unity & Unreal Localization CSV Placeholder (`{0}`, `%s`, ``) Mismatch Scanner & Auto-Fixer

Exact error
System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.

Catch and auto-repair broken `{0}` C# format tokens, spaced `% d` printf specifiers, and unclosed `` tags across multi-language localization CSVs.

Zero cloud uploadsnpx tofucheck CLI + GitHub ActionOne-time from $12
UNICODE GLYPH ATLAS · ENGINE COVERAGEcmap 4 + 12 · 11/12 PASS
文U+6587 PASS
한U+D55C PASS
ДU+0414 PASS
あU+3042 PASS
ΩU+03A9 PASS
字U+5B57 PASS
łU+0142 PASS
жU+0436 PASS
éU+00E9 PASS
글U+AE00 PASS
AU+0041 PASS
□U+663E .notdef
U+663E □ .notdef CAUGHT → PATCHEDFALLBACK SUBSET +1
Unity TextMeshProUnreal UMGGodot 4
tofucheck://fixes/unity-localization-csv-printf-placeholder-mismatch-validator
client-side

TofuCheck Binary OpenType (.TTF/.OTF) Glyph Coverage & Localization Placeholder + Steam BBCode Auto-Fixer

Ready to inspect binary font cmap subtables (Format 4 & Format 12) in browser memory.
Localization Table (.csv — English, Japanese, Simplified Chinese, Korean, Polish, Russian)
Steamworks Store Page Description (BBCode — checks unclosed [h2], [list], [url] & raw HTML)

TofuCheck Binary RIFF WAVE (.wav) Seamless Loop Zero-Crossing & smpl Chunk Auto-Fixer

Detects boundary amplitude step clicks/pops, removes DC offset, applies 64-sample cosine zero-crossing fade, and injects a 60-byte binary smpl chunk.

More Game Dev Pre-Launch Diagnostic & Auto-Repair Guides (TofuCheck by SpecFix)

Compare $12 Quick Fix vs $29 Studio Pass →
Why it happens

Root cause & deterministic fix

Root cause

External translation spreadsheets often come back with missing closing braces (`{0`), full-width CJK braces, or dropped `` tags.

What TofuCheck does

Parses the multi-column CSV, diffs every target cell's token AST against the source language column, repairs broken placeholders in place, and exports a clean RFC-4180 CSV.

Onemissingglyphturnssixmonthsofworldbuildingintoaday-oneMixedreview.TofuCheckcheckseverycharacter,tokenandloopbeforeyourplayersdo.

How it works

Rules a localization lead would write, enforced on every string.

Each check is a plain, inspectable rule — not a model's best guess.

Every codepoint against every cmap

Format 4 and Format 12 cmap subtables are parsed straight from your .ttf/.otf/.woff binary and intersected with every string in your .csv, .json and .po tables.

Tokens and tags survive translation

{player_name}, %s, {0} and [color] tags are diffed source-vs-locale so a translated variable key never ships as a runtime FormatException.

Loops that never click

WAV loop seams get a 64-sample cosine zero-crossing and an injected RIFF smpl chunk, so engines keep the loop points on re-import.

Code level determinism when you need it. Browser simplicity when you do not.

Same font, same strings, same report — every time. No AI guessing at your glyph coverage, and nothing leaves your machine.

Pricing, plainly

What it costs compared to the usual options.

One-time passes, no seats to renew. Published list prices as of October 2026.

TofuCheckEnterprise LQA platformsManual QA pass
Price$12 Quick Fix · $29 Studio · $49 Team & CI/CD — one-time$600+ / seat / yearTester hours per build
Catches missing glyphs (.notdef / □)Every codepoint, every localeScreenshot reviewIf someone notices
Placeholder & BBCode parityAutomatic, with fixPartialManual
Exports engine-ready glyph setsTMP · Godot · UMGNoNo
Runs in CInpx tofucheck + GitHub ActionVendor APINo
Your unreleased build leaves your computerNeverUploadedShared drives
FAQ

Questions we hear most.

Does TofuCheck upload our unreleased script or game assets to any server?

Never. The browser diagnostic and the Studio Pass run 100% locally using client-side parsing and the offline CLI. Dialogue CSVs, proprietary fonts and audio stems never leave your disk, so it is safe for NDA publisher builds.

How is this different from enabling pseudolocalization in Godot or Unity?

Pseudolocalization swaps ASCII for accented Latin (Ĥéłłô) to test string expansion. It cannot verify whether your bundled font files contain the CJK, Cyrillic, Hangul or symbol codepoints that are actually in your translated CSV or PO files.

Which engines and localization formats are supported?

UTF-8 CSV/TSV (Godot CSV, Unity Localization, I2 Localization), GNU gettext .po, flat or nested .json, paired with .ttf, .otf and .woff fonts and 16/24/32-bit PCM .wav files. Exports target Unity TextMeshPro, Unreal UMG and Godot 4.

What do I get with each pass?

Quick Fix Pass ($12): one project, full report and repaired exports. Studio Pass ($29): unlimited projects, offline build and the npx tofucheck CLI. Team & CI/CD Pack ($49): multi-seat license plus the GitHub Action gate for every pull request.

Will it tell me exactly which characters to add to my font asset?

Yes. Missing codepoints are listed per locale with row and key, and TofuCheck generates a TextMeshPro Custom Character Sequence and a Godot/Unreal glyph range file you can paste straight into your import settings.

Is there a refund policy?

Yes — 14-day unconditional refund if TofuCheck does not catch a single issue in your project. Checkout is handled by Lemon Squeezy.