Old-school Lineage 2 solo play, locally in a live world with over 1700 bot population.
L2Solo is a local-first Lineage II C4 server emulator, tuned for a solo MMO experiment: one real player, a live world, and bots with AI that makes the server feel alive. Nothing is auto-generated. Everything in the world is the result of a player's or a bot's actions.
Project status: public alpha
🏗️ Work in progress. Playable.
💬 Discord Support, updates, and communication. Join the Discord to be up to date with development.
⚔️ Game client Clean C4 client protocol 656
- 2026-08-25 Bot clans update follow-up, bug fixes
- 2026-08-24 Bot clans, better cold/hot performance, bug fixes, and more
- 2026-08-20 Loot and mob skills bug fixes, bot social graph base
- 2026-08-19 Runtime optimization, cold bot progression bottlenecks fix, bot equipment enchantment
- 2026-08-18 Fixes, cold bots progression, better AI compatibility
- 2026-08-17 Fix cold bots progression, melee and polearm attack range, raid minion party fear
- 2026-08-16 Summoners, BD, SWS, agro skills and Observer update
- 2026-08-15 Blade Dancers and Sword Singers bot progression update
- 2026-08-15 Raid Encounter and Gameplay Stability Update
- 2026-08-15 Server stability and performance update
- 2026-08-13 Fix hot party performance issues, fix raid boss atk freeze
- 2026-08-13 Raid bosses, better bot progression and market use, skill fixes, party finder update
- 2026-08-11 Expand C4 world content and bot progression systems
- 2026-08-09 Expand C4 world content and runtime fidelity
Server:
- Server launcher
- Authentication: create account, login (C4 client, protocol 656)
- Character creation
- Variable server rates for each server start: (x1/x10/x50) XP, SP, party XP/SP, drop/adena/spoil multipliers
- Real-time player web map that shows bots and players
- Partial or full wipe anytime
World:
- Complete geodata for all locations
- Complete live economy
- Teleports via NPC or .admin menu
- Live world / local / party / trade chats
- NPC shops in towns
- Profession change (first to third)
- Auto-learn skills (no books or NPC needed)
- Quests (0-20lvl + 1st profession change)
- Private trade or craft
- Clans, including bot clans
Character:
- Progression depending on chosen rates
- Full C4 skill coverage: self, targeted, AoE, effects, items, and class skills
- Potions, scrolls, spoil, SA, manor, etc
- Party with bots with native (/invite, /leave), plus
.botparty/.bpto find bots and invite them to the party - All armor sets
- Soulshots/Spiritshots
- Death, respawn
Mobs:
- Attack
- Skill usage
- Drop table (scales from server rates)
- Social agro
- AoE agro
- Party loot
- Raid bosses
Bots:
- Dynamic bot population with a smart new bot seeding up to 1700
- Bots are farming solo and in party
- In-party roles (tank, dps, healer, buffer, etc)
- In-party buff control
- Bot goals: equipment craft/drop/purchase, gain wealth, lvl-up faster, etc
- Craft using recipes and craft stations
- Selling loot in towns using a private store
- Buying needed resources or equipment
- PK bots
- Bots attack a PK or run away
- Communication in chat (LFP, LFG, PK alert, etc)
- Cost parties and friends system
- Reputation system - bots will reject player party if you treated them badly or become friends and const party members if good
- Bots ask for loot if you have something they need
- Bots go for NPC (Nobie guide) buff
- Bots change their farming location based on lvl, number of mobs around, or a crafting goal
- Bots join and fight in a party with a player
- Bots have a memory about interaction with a player; they act correspondingly
- Bot persona traits: Sociability, Commitment, Caution, Ambition, Assertiveness, Empathy, Resilience
- Bots create clans, level clans up, form clan farm parties
- Clan halls
- Clan wars
- Wars for a farm spot
- Olympiad, heroes
- Sieges (bot- or player -driven)
- World bosses
- Full quests, including profession change
- Better bot AI brain
- Complete Lineage 2 C4 experience
You will need:
- Node.js v22.15+
- A Lineage II C4 client using protocol 656
npm install
npm startThat command will start the L2Solo Launcher.
Press Start in the launcher to run the server.
On the first server start, L2Solo checks data/Geodata. If the region files are missing, it downloads the verified C4 geodata pack from https://l2solo.com/files/geodata.zip and installs it before opening the game server. The archive is about 209 MiB and expands to about 900 MiB. You can prepare it without starting the server with:
npm run geodataCustom mirrors and external geodata directories can be configured with L2NODE_GEODATA_URL, L2NODE_GEODATA_SHA256, and L2NODE_GEODATA_DIR.
Committed defaults live in config/default.ini.
Private local overrides go in ignored config/local.ini. This is where API keys and a machine-specific SQLite path belong.
Example:
[OpenRouter]
enabled = true
apiKey = <your-OpenRouter-key-here>
apiUrl = https://openrouter.ai/api/v1/chat/completions
model = openai/gpt-5.6-luna
partyRouterModel = openai/gpt-5.6-luna
debug = trueOpenRouter can also read the key/model from environment variables:
OPENROUTER_API_KEY=sk-or-v1-your-key-here npm startThe bot simulation can also use a local or remote provider that exposes the
OpenAI-compatible Chat Completions API. Use an [AI] section instead of
[OpenRouter] and provide the complete endpoint URL:
[AI]
enabled = true
apiUrl = http://127.0.0.1:1234/v1/chat/completions
apiKey = lm-studio
model = <model-id-from-the-provider>
partyRouterModel = <model-id-from-the-provider>
# Optional for thinking models: off (default), low, medium, or high.
# reasoningEffort = offFor Ollama, use http://127.0.0.1:11434/v1/chat/completions and a pulled model
tag such as llama3.2. The API key can be empty for local providers; a value
like ollama or lm-studio is also accepted when the server expects an
OpenAI-compatible client key. Thinking is disabled by default for [AI],
which keeps the bounded bot response budget available for the required JSON;
set reasoningEffort to low, medium, or high when the selected model
benefits from explicit reasoning.
.admin- open the admin menu..sell- sell all unequipped non-Adena items for 50% item value..bot/.b- open companion controls..botparty/.bp- search active bots to join the player party; distant companions catch up after joining..botfriends/.bf- friend list and const party management..botstatus/.bs- show a bot overview panel..botstatus <name>/.bs <name>- show detailed status for a specific bot..botpath/.bpath(optionally with<name>) - inspect bot movement, town-route waypoints, and geodata path diagnostics..tradeor/trade- open the bot trade window with the targeted SimPlayer, useful as a fallback to the native client trade action..leave- dismiss all companion bots..kick <name>- dismiss one companion bot./invitewhile targeting a bot - recruit that bot as a companion./dismiss <name>and/leavealso work through the party request path.
Nearby bots also react to plain chat lines such as hi, follow, wait, hunt, heal, and buff.
This project is a heavily modified solo-MMO fork of the original NodeL2 Server Emulator.
L2Solo is licensed under the Apache 2.0 license.
Crafting with ❤️ by a player for players 🤘
