Historical Archive · Dossiers

Dossier · 2003-today · updated September 6, 2026

Forty thousand two hundred fifty: Ymir's numbers

The scene calls its own copies "34k", "40k", "40250" as if they were version names. They are the internal revision numbers of the company whose code had been stolen, and the game still prints them.

  1. The labels
  2. Where they come from
  3. The oldest one
  4. What else the code says

The labels

In the scene people say "34k", "40k", "40250" as if naming a version. The "34k" are Metin2.SG's files from July 2013, cleaned up in February 2014 ("34k untouched", because earlier releases had backdoors). F The "40k" appears on a scene forum on 12/29/2013, credited to Italians. F The "40250" is the number of kraizy.tgz ("Game r40250 unstripped", 12/31/2013) and since 2021 the canonical modern base. F For twenty years, thousands of people have identified their own copies with these numbers. No one ever knew where they came from.

Where they come from

From Ymir's internal repository. They are Perforce changelist numbers, the Korean studio's version control system, and the game still prints them today because a diagnostic switch was left on in the executable:

Version.py:7            p4 changes -m1
UserInterface.cpp:523   --perforce-revision  ->  "r%d"

F p4 changes -m1 is the command that asks Perforce for the latest changelist. The client stamped it on itself with every build. The scene read that number, took it for the version's name, and adopted it as its own.

The oldest one

The oldest number the archive has read directly is not from 2014: it is from 2009. The VERSION.txt files of game0901.tar.gz say game svn revision 404 for the game server and 407 for the auth. F In 2009 the server was still on Subversion; by 2014 the number is Perforce and stands beyond 40,000. In between, the 2010-2013 scene packages carry their own numbers: a game.tar.gz from 2012 declares "svn revision 2089M, lastmirage@…/trunk/game/src", a scene numbering, not Ymir's, and lastmirage is not a person but a system user that recurs identically across multiple packages. F

What else the code says

The 2014 source preserves fossils that no document tells:

  • Four projects in Ymir's bug tracker: [M2EU], [M2KR], [M2CN], [M2AE]; and one from Gameforge (GF mantis #113524). F
  • The Gameforge layer has a name: the Lua table gameforge.*, 8,860 keys. F
  • TEC (Singapore) is written by name in Locale.cpp, next to CIBN (Free world): the 2013 whistleblower was a licensee. F
  • 33 territories in the locale enumeration, including a LOCALE_SERVICE_VIETNAM_MILD, a censored edition. F
  • The plaintext login key: 1234abcd5678efgh for Gameforge, testtesttesttest for Korea, China, Japan, Brazil, Hong Kong, Singapore and Canada. F
  • QID_PROTECT_CHILD, PROTECT_CHILD_FOR_NEWCIBN: the fossil of the Chinese anti-addiction system, twin to the 防沉迷 pages from 2008 on 《倚天Ⅱ》's official site. F
  • A memo from 11/9/2009: "the percentage of German warriors is close to 70%". F
  • 13-character social_id: the length of the Korean resident registration number. F
  • mainline and novaline are internal branch names; DBManager_mainline.cpp is the signature of the branch that came out in 2014. F

For twenty years the scene named itself using the internal numbering of the company whose code it had stolen, believing it its own.

Exhibits cited

« all dossiers

 

Login

 

Player top 10

Top 100