Free Tools & Resources
Free Proto Preflight: reproduce a broken upgrade reference and download the findings
m2city · official · Published 2026-11-02 · Branch-specific details should be checked against your own source.
M2City Proto Preflight is a free browser-only static checker for supported item/mob proto text exports. It does not need an account and does not upload the selected files. You can download its findings as JSON.
Try a controlled example
Open the checker and choose the broken-file demo. It includes a repeated item VNUM, an upgrade target that is not present and a names entry that does not match the supplied item table. The report identifies the relevant lines. The demo is synthetic, not a real player's or server owner's data.
Check your own export
Choose between one and four supported text files. Recognised filenames are item_proto, mob_proto, item_names and mob_names with a .txt or .tsv extension. Each file must be at most 5 MB. Choose the encoding that matches the original export, run the check and read each finding in context. Files and encoding changes invalidate the old report until you run the check again.
For names cross-references, supply exactly one matching proto table. Different proto exports are checked independently; the tool does not merge them into an imaginary server. Ascending VNUM ranges are checked without expanding every identifier.
Read the limits
A recognised item header is needed to identify the refine-target column. In a headerless table the checker does not guess that column. Binary proto and SQL dumps need a different workflow. A report without detected errors does not verify recipes, shops, quests, client/server compatibility or server startup.
Give useful feedback
Post the supported filename, selected encoding, a tiny sanitised input, the actual finding and the expected finding. The free starter kit includes broken and corrected synthetic fixtures and example reports you can compare.
This is an original M2City release. Its parser tests cover duplicate/range detection, missing targets, names gaps, unsupported formats and bounded reporting. Runtime compatibility with a particular Metin2 branch is a separate test.
MAKE THE NEXT ANSWER BETTER
What happened on your build?
Share a small example, the exact error and how you verified your fix. The discussion is open on the forum.
Need a scoped quest, UI or proto fix? · Explore more development guides · Check your proto files free