A small example you can reproduce

The data below is synthetic. It illustrates two static data problems, not a complete item_proto schema. Use tabs between columns.

VNUM	NAME	REFINED_VNUM
1000	Training Sword	1001
1001	Training Sword +1	9999
1001	Duplicate Sword	0


The third data row reuses VNUM 1001. The preceding row points at target 9999, which does not exist in this table. A real fix needs a decision about which row and upgrade path were intended; blindly renumbering the duplicate can break other references.

A safe investigation order
1. Keep an unchanged copy of the text export.
2. Find every definition of the duplicate ID.
3. Decide which definition is authoritative.
4. Check shops, drops, upgrade targets and other files that use that ID before changing it.
5. Review the diff, rebuild using your own toolchain where required, and test on a staging server.

The free checker reproduces this example and identifies the relevant lines. It understands ascending VNUM ranges such as 2000~2003. It checks refine targets only when a recognised header identifies the column; it does not guess a position in headerless exports.

What it cannot prove
A clean report is not proof that a client and server agree, that a database import is correct, or that your server will start. Share your exact export format if a warning seems wrong.