Ctrl+K

Overview

L2J Evolution is a Lineage 2 High Five Java server emulator. It is based on the L2jServer project and extends it with a redesigned configuration system, a structured data layer, and a modular engine.

Credits: The foundational emulation layer — including network protocol, AI, geodata, and core gameplay systems — is based on the L2jServer project, maintained by Zoey76. L2J Evolution extends this work with its own systems, improvements, and architecture, while respecting the original codebase as its core reference.

Key Characteristics

AreaApproach
ConfigurationTOML-only. No INI files. One file per module.
Config bindingTyped static fields loaded via MultiFormatLoader and AbstractConfigs
Data layerParser → Repository → Service. Clean separation of loading and runtime logic.
ModularityCore and Engine are separate compilation units. Engine adds zero overhead when modules are disabled.
GCZGC generational (-XX:+UseZGC -XX:+ZGenerational). Sub-millisecond pause times.
Anti-botFunGuard — native C++ DLL, protocol-level enforcement.
BuildApache Ant. release=25. Two independent Ant projects.

Architecture Comparison

L2jServerL2J MobiusL2J Evolution
Java 252525
Config format .ini via owner library .ini static fields TOML only — MultiFormatLoader
Config binding @Sources / @HotReload on interfaces static parse in ConfigReader typed static fields, one class per module
Modularity monolithic core monolithic core Engine = separate compile unit, zero core modification
GC strategy G1GC (default) G1GC (default) ZGC generational — sub-millisecond pauses
Anti-bot none none FunGuard — native DLL, protocol-level
Code style OOP, Dependency Injection static utility heavy static managers, explicit init order, fail-fast defaults

Project Components

  • L2JEvolution.HighFive — Core server. Network, AI, geodata, config loader, data tables.
  • L2JEvolution.Engine — Addon and feature layer. Separate compile unit, depends on Core.
  • L2JEvolution.GeoEngine — Geodata engine (pluggable).
  • L2JEvolution.EventsEngine — Event framework for scripted events.
  • scripts/ — Quest handlers, NPC handlers, skill handlers.
  • datapack/ — XML data (items, NPCs, skills, spawns, HTML).