Run the check without a website connection
This original M2City release packages the plain-text checker into a single HTML file. Extract the ZIP and open index.html in a modern browser. No installation, account, package manager or internet connection is needed to run it. It is free software under the MIT licence; retain the licence when sharing or adapting it.

What is included
The archive contains the standalone page, readable JavaScript and stylesheet sources, a README, the MIT licence, an integrity manifest and a nested examples.zip with broken/corrected synthetic tables and expected reports. No proprietary game client, assets, serverfiles or binaries are included.

Try a result you can verify
Choose the demo: expect 2 errors and 1 warning across 2 files. Extract examples.zip and choose both files in broken/: expect the same counts. Choose both files in fixed/: expect 0 errors and 0 warnings. Download the JSON report and compare its findings with the expected reports. The synthetic tables teach a diagnosis; they are not complete engine-ready proto files.

Supported input and limits
Use 1–4 plain-text item_proto, mob_proto, item_names or mob_names exports with .txt or .tsv extensions, up to 5 MB each. Select the original encoding. The checker finds duplicate/overlapping or invalid VNUMs, inconsistent tab-separated columns, recognised-header refine targets and names entries missing from a supplied matching proto. It recognises VNUM ranges and does not guess headerless refine columns.

The tool reports at most the first 200 findings per file and processes up to 100,000 lines. A clean static report is not proof that a server will boot. Binary protos, quest compilation, database correctness and branch-specific runtime compatibility need separate checks.

Privacy and verification
Files are read locally and are never changed. The page has no external scripts, fonts or analytics and blocks network connections with a Content Security Policy. Optional community links open only when clicked. The demo, broken/fixed fixtures and JSON export were checked in Chromium, including a run with network access disabled.

Find the current archive size and SHA-256 in the download catalogue. For an unsupported layout, post a small synthetic reproduction with the filename, encoding, actual report and expected report. Do not attach private server data.