A Short History of L2jMobius
How a teenager looking for a legal way to make a game became a fifteen-year emulator project.
Condensed from the founder's own account (2005–2019). The full narrative lives on the forum.
The pieces behind the timeline
Why this project exists
L2jMobius did not begin as a Lineage 2 project, it began as a teenager looking for a legal way to make a game. Commercial engines were out of reach financially. Most "free" game files floating around the early-2000s internet were obviously illegal. L2jServer was the one project that publicly claimed to be legal, open source, and contributable. That claim is what got the founder in the door in 2005, and the cracks in that claim are most of the story that follows.
The L2jServer years (2005–2012)
Contributing to L2jServer in the mid-2000s meant accepting an asymmetric set of rules. Outside shares were not welcome. Tools the inner team built (geodata extractors, showcased work) were never released. Bans were issued for asking questions in the wrong forum. Posts were censored without explanation. Major content was rejected for being "not retail enough" while later releases shipped with the same gaps. By the time Goddess of Destruction launched in late 2011, the inner team had publicly committed to staying on High Five, and concluded that an open GoD emulator was only going to happen if someone outside the circle built it.
The first L2jMobius (January 2013)
The earliest L2jMobius was a Russian-files-based release with as much L2jServer coding logic preserved as possible. The aim was never to replace L2jServer, it was to demonstrate that the project's logic could carry forward into newer chronicles. That goal landed; the project's social standing didn't. Within months the original L2jMobius forum was deleted by a new administrator, created the L2jEuropa fork peeled off most of the active members, then accused Mobius of stealing their work. Glory Days development died in the noise.
Ertheia - the race that defined the next decade
By late 2014, L2jTW had a rough Ertheia branch and demand for newer content was building. L2jMobius Ertheia shipped on November 5th 2014, two weeks before the L2jServer team released theirs. Because the Russian-derived files carried far more content than L2jServer's fresh branch, the Mobius version was the more complete project on day one. The inner team noticed. Within months they began work on a private fork, L2jUnity, that would become Mobius's primary rival for the next two years.
L2jUnity, the subscription era, and going private
In February 2015 the L2jServer inner team announced L2jUnity and L2jServer effectively went dormant. By mid-2016, L2jUnity had pivoted to a paid model (20–30€/month). Mobius mirrored the move at a far lower price (10€/year, later 60€/year) for a different reason: to keep the project funded, to push out leakers, and to focus the small group of people who were actually contributing. Both projects coexisted, both took shots at each other publicly, and Mobius spent that period unwinding bugs inherited from L2jServer.
The license question (2018)
GitHub's 2018 licensing campaign forced every long-running open-source project to think harder about what its license actually permitted. The founder asked L2jServer leadership to relax GPLv3 to something genuinely permissive; the answer was no. That refusal, combined with the founder's own discomfort at running what had drifted into a customer relationship rather than a contributor community, set in motion the MIT Transition.
What stayed constant the whole way through
- No retail leaks as a source. Mobius has used videos, packet captures, and in-game observation, not leaked retail server files. This rule predates the project's public release and survives every fork.
- Per-chronicle codebases. Each chronicle is its own folder, its own jar, its own database. Code is ported by hand, not by symlink. This is why the cheat sheet emphasises "ONLY inside that chronicle's folder".
- Authoritative XML, parser-only Java. Items, skills, NPCs, drops, the canonical definitions live as XML under
dist/data/. The Java loaders are parsers, not the source of truth. This pattern is older than the public Mobius release.
The full first-person narrative, with screenshots, ban notices, and forum receipts, is preserved at the original "L2jMobius (the story)" forum post. This page is the operator-facing summary of how the codebase you are looking at came to be the codebase you are looking at.