Jump to content

Recommended Posts

Posted

I came out of my cave as I do once every 5 years. By now, I know nobody really cares about L2, but I still find it fun to experiment.

Everything you see here will be free and open source. I have no interest in selling anything.

 

Long story short, I like to revisit Interlude and apply what I've learned to see how far I can push it. Here's Outerlude, a public fork of aCis for the modern age.

 

Video demo:

 

Work that has been done:

 

  • Redone the netcode from scratch to be async
  • The NPC AI was completely redone based on Finite State Machines
  • Moved to PostgreSQL and using some of its cool features
  • Lots of config that should be hot reloadable has moved to the database
  • OpenTelemetry instrumentation, where it makes sense, and a Grafana dashboard
  • A built-in REST API for server management
  • A built-in MCP Server for LLMs
  • Nidrah AI, an AI Agent to make managing the server easier
  • Real-time server map view
  • Chat auditing and live snooping
  • A new Fake Players Engine with a Node logic system and a new LLM planner for any behavior
  • Just watch the video

 

If there is interest in this and I'm happy with it, or I get bored (which I always do), I will open-source it.

Let me know what you think and if there is some feature you'd like me to implement.

Posted (edited)
3 hours ago, Elfo said:
  • Moved to PostgreSQL and using some of its cool features
  • A built-in REST API for server management

OH MY LORDDDDDDDDDDDDDDDDDDDDD

 

FINALLY

Edited by Splicho
Posted

LLMs are getting cheaper. Especially the small models are cheap and very capable, very soon we will see AI agents per fake player in games. Imagine 500 AI agents having access to various functions (MCP) and going for pvp, farming, setting up shops, recruiting, writting memories (pgvector), reading memories, taking decisions against other players, pathfinding, organizing sieges ... 

Posted (edited)

Migrating a legacy Interlude server to PostgreSQL while adding real observability is basically forcing 2006 MMO engineering to attend a 2026 infrastructure conference at gunpoint.

PS: which revision of aCis?
PS: 🧻what was broken during this whatever you call it. 

 

AAC Guard beign asked to adapt to this be like:

images?q=tbn:ANd9GcRp67_kMe1s2YlJFKfjE9W


- Creating bugs since early 2018

:kim:

Edited by Nightw0lf
Posted

First of all, its great to finally have something meaningful to discuss on this forum  and good job pushing this community forward, even if its mostly dead. I always wondered why, in the last 15 years, no one has properly documented any of the source code (acis mobius) or at least exposed common functionality through something like a rest api, which is straightforward enough for most people to understand and use.

 

I have some technical questions since im really interested

 

Regarding real time features like maps and enchanting  are you using technologies like grpc? And what happens when both a logged in player and panel try to enchant the same item at the same time? Do we run into a race condition how do you handle that ?

 

Regarding  fake player system  external models calls typically take 1-2 seconds to respond, while an local models might take around 200-300ms. During that time a lot can happen in game. So when the plan becomes stale you override it and wait for the new one  meaning the node handles everything in real time and the LLM simply sets the goal asynchronously. Is that the correct understanding ?

 

Regarding the security aspect a lot can go wrong when exposing crucial server logic to the open web (experimental is good). My real concern is  the mcp in the panel where  a lot can go wrong with bad user input. 

 

16 hours ago, Elfo said:

I like to revisit Interlude and apply what I've learned to see how far I can push it

 

Wasn't the game client always the limiting factor for l2j?

Posted (edited)
13 minutes ago, Seamless said:

Regarding real time features like maps and enchanting  are you using technologies like grpc? And what happens when both a logged in player and panel try to enchant the same item at the same time? Do we run into a race condition how do you handle that ?

There is no need for gRPC in this case, even tho originally it was gRPC based but since we don't need it to be bi-directional, we switched to simple http requests for the web calls and SSEs for the data streamed from the server. There are distributed locks in place to precent race conditions between actions that can happen between multiple web instances and the server.

 

13 minutes ago, Seamless said:

Regarding  fake player system  external models calls typically take 1-2 seconds to respond, while an local models might take around 200-300ms. During that time a lot can happen in game. So when the plan becomes stale you override it and wait for the new one  meaning the node handles everything in real time and the LLM simply sets the goal asynchronously. Is that the correct understanding ?


Local models can also be slow depending on the model, and most external models can actually be faster than local ones if you use Flash 2.5 or something along those lines. I am running on 512GB of Unified Memory on my Mac Studio M3 Ultra so the speed of the local model for a small model is pretty good but I tested it with Gemini too and it works equally as fast and in some cases faster. The way it works is that I'm using pgvector (one of the benefits of moving to Postgres) to search the data and see what the player can see etc and there is some batching of the next few actions for 2-4 seconds for the user until the next LLM request fires. The batching also includes branching on logic so if they for example fall under some HP they will move to kiting instead of attacking or maybe they heal etc.

 

13 minutes ago, Seamless said:

Regarding the security aspect a lot can go wrong when exposing crucial server logic to the open web (experimental is good). My real concern is  the mcp in the panel where  a lot can go wrong with bad user input. 

Everything is authed and permission-based. The server and the backend of the frontend have secure communication between them, either with a symmetric key (not recommended for production) or a certificate (the recommended way), so there is no worry. It's all tied to the account's access level, etc., so nobody can make an action that they normally wouldn't be allowed to do. Even the MCP is token-based, and there are prompt injection protections in place. The MCP is audited, and every mutation needs confirmation. The admin area is only accessible to the admin account anyway so normal users can't access it.
 

Edited by Elfo
Posted

The account control panel also comes with a real-time web-based L2 Client so you can see what's going on in the server without needing to load the client:
 

 

Posted
2 hours ago, Elfo said:

The account control panel also comes with a real-time web-based L2 Client so you can see what's going on in the server without needing to load the client:
 

 

this is isane bro! 😮

Posted (edited)

@Elfo Thanks for your reply. At this point, I’m more interested in your ai  workflow rather than the actual implementation. Even if you don’t open source it, it would still be really valuable for research if you could share the technologies you used in each step. Great job 

 

On 5/14/2026 at 1:40 PM, Elfo said:

I am running on 512GB of Unified Memory on my Mac Studio M3 Ultra

 

Holy cow thats about 15k

 

On 5/18/2026 at 8:11 PM, Elfo said:

The account control panel also comes with a real-time web-based L2 Client so you can see what's going on in the server without needing to load the client:


Webgl ?

Edited by Seamless
Posted
1 hour ago, Seamless said:

Holy cow thats about 15k

14,299 GBP
image.png.aed90355ae85fdd33c3a99ce111fd7d6.png

 

 

1 hour ago, Seamless said:

Webgl ?

Yeah and it loads the actual files from the actual client so it's the same unr, utx, etc files that you have on the client.

Posted
On 13/5/2026 at 13:30, Elfo said:

Salí de mi cueva como lo hago una vez cada 5 años. A estas alturas, sé que a nadie le importa realmente L2, pero todavía me resulta divertido experimentar.

Todo lo que veas aquí será gratuito y de código abierto. No tengo ningún interés en vender nada.

 

En pocas palabras, me gusta volver a visitar Interlude y aplicar lo que he aprendido para ver hasta dónde puedo llevarlo. Aquí está Outerlude, una bifurcación pública de aCis para la era moderna.

 

Demostración en vídeo:

 

Trabajo que se ha realizado:

 

  • Rehizo el código de red desde cero para que sea asíncrono
  • La IA del NPC fue completamente rehecha basándose en máquinas de estados finitos
  • Se trasladó a PostgreSQL y utiliza algunas de sus funciones interesantes
  • Muchas configuraciones que deberían poder recargarse en caliente se han movido a la base de datos
  • Instrumentación de OpenTelemetry, donde tiene sentido, y un panel de Grafana
  • Una API REST incorporada para la gestión de servidores
  • Un servidor MCP integrado para LLM
  • Nidrah AI, un agente de IA para facilitar la gestión del servidor
  • Vista del mapa del servidor en tiempo real
  • Auditoría de chat y espionaje en vivo
  • Un nuevo motor de jugadores falsos con un sistema lógico Node y un nuevo planificador LLM para cualquier comportamiento
  • Sólo mira el vídeo

 

Si hay interés en esto y estoy contento con ello, o me aburro (lo cual siempre hago), lo publicaré en código abierto.

Déjame saber lo que piensas y si hay alguna característica que te gustaría que implementara.


Lo vendes? necesito todo eso, esta super hermoso tu trabajo.

Posted

τι εκανες εκει παλι ρε τρελάρα; 🤣

 

welcome back mate, happy seeing you online again, well thats beyond l2 needs for sure and It’s rare to see anyone pushing Interlude this far technically anymore without trying to monetize it.

definitely interested in seeing the source whenever you're ready to share it!

keep it up!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • τι εκανες εκει παλι ρε τρελάρα; 🤣   welcome back mate, happy seeing you online again, well thats beyond l2 needs for sure and It’s rare to see anyone pushing Interlude this far technically anymore without trying to monetize it. definitely interested in seeing the source whenever you're ready to share it! keep it up!
    • your only choice brother cmon https://www.l2jsunrise.com/
    • Hello everyone  How are you all doing? I'd like to share with the community an open-source project I've been working on intensely: the **L2 Phantom AI Manager**. Tired of those static bots that just stand still in the city or sink into the map because of Geodata? Me too! That's why I developed a modular Phantom system with real Artificial Intelligence, initially designed for **L2J Mobius Essence (RoseVain)**, but which can be adapted to other chronicles. Main Features Modular architecture: the system is split into focused files such as PhantomAI, PhantomEngine, PhantomFactory, PhantomEquipment, PhantomHuntingSpots, PhantomGeo, PhantomMenu, and more. Automatic creation: create 10 or 50 phantoms from the menu or commands. XML persistence: automatically created phantoms are saved into PhantomPlayers.xml, so they keep loading after server restarts. Batch startup: .pstart and Start 10 load only 10 phantoms at a time. Batch disconnect: disconnect 10 active phantoms without shutting down the whole system. Origin towns: new phantoms spawn using PlayerTemplate.getCreationPoint(), respecting race and class. Geodata-safe spawning: spawn points use NPC-like coordinate validation to avoid under-map or floating characters. Real datapack spots: reads data/stats/npcs and data/spawns to build level-based hunting locations. Bad target filtering: ignores Training Dummy, tutorial objects, chests, and fake farm targets. Smart relocation: if a phantom cannot find useful mobs, it relocates to another spot for its level. Level goals: phantoms receive leveling goals, return to town, recover resources, and go back to farming. Mage MP rest mode: mages rest until MP is recovered; in PvP they try to escape when out of mana. Skills and buffs: phantoms try to use offensive skills and self buffs such as Might, Shield, Focus, Haste, Empower, Acumen, Wind Walk, Chant, Song, and Dance. Varied gear packs: gear packs by grade for mages and fighters, with multiple variants to avoid visual clones. Automatic shots: randomized Soulshot and Spiritshot restocking by class and grade. Inventory cleanup: unnecessary items are removed automatically while preserving Adena, shots, and equipped gear. PvP and PK behavior: some phantoms are aggressive, may become PK, and attacked phantoms try to defend themselves. Optional AI chat: optional Google Gemini integration for short social replies. TXT logs: the menu displays log state and can enable/disable logging. GM Menu Use .pmenu to open the control panel. Current options: Start 10 Disconnect 10 Create 10 Create 50 Reload XML Stop All Enable Log / Disable Log The menu also shows: active phantom count; XML ID count; current TXT log state. Commands .pmenu - opens the control panel. .pstart - starts 10 phantoms from XML. .pstop - removes all active phantoms. .pstop10 - disconnects 10 active phantoms. .pload - reloads PhantomPlayers.xml. .pcreate 10 - creates, starts, and saves 10 phantoms to XML. .pcreate 50 - creates, starts, and saves 50 phantoms to XML. .pm Name Message - sends a private message to a phantom. .pdebug - toggles TXT logging. Logs Logs are created in the GameServer log/ folder: log/PhantomManager.txt - global historical log. log/PhantomManager-yyyyMMdd-HHmmss.txt - separate log for each session. Useful logged events include: new level goals; travel to hunting spots; town rest; mob attacks; PvP defense; shot restocking; inventory cleanup; AI exceptions with stacktrace. Main Files PhantomManager.java - commands, logs, and bootstrap. PhantomEngine.java - start, stop, spawn, respawn, batches, and AI loop. PhantomAI.java - farm, PvP, PK, rest, targeting, and movement decisions. PhantomConfig.java - routes, gear, shots, and XML persistence. PhantomFactory.java - automatic character creation. PhantomEquipment.java - buffs, progression, shots, and inventory cleanup. PhantomHuntingSpots.java - real datapack NPC/spawn loader. PhantomGeo.java - geodata-safe coordinate handling. PhantomState.java - temporary phantom memory. PhantomMenu.java - GM HTML panel. PhantomBypass.java - menu button handling. PhantomChat.java - messages and optional Gemini integration. Copy custom/PhantomManager into: dist/game/data/scripts/custom/PhantomManager/ Place PhantomPlayers.xml in: game/config/Custom/PhantomPlayers.xml Compile scripts or restart the GameServer. Use .pmenu to create, start, and manage phantoms. https://github.com/miacodeweb/L2-Phantom-AI
    • EspadaWorld Reborn - Lineage 2 High Five Private Server Official Website: https://l2espadaworld.com   GitHub Presentation: https://github.com/worldespada-cloud/EspadaWorld   About EspadaWorld Reborn   EspadaWorld Reborn is a cinematic Lineage 2 High Five private server project built on a customized FandC / L2J-style High Five core. The project is focused on balanced gameplay, PvP competition, PvE progression, custom systems, vote rewards, rankings, protection integration, website features, and long-term stability. EspadaWorld is not a clean stock pack. The server has been extended with custom systems, website integration, vote reward logic, protection-related modules, custom instance content, gameplay improvements, and server-side adjustments. Server Foundation Chronicle: Lineage 2 High Five Base: FandC High Five core, heavily customized Core style: L2J-based server architecture Build system: Apache Ant Java target: Java 25 Database: MySQL Project type: Active development / production server environment Main Features - Custom Lineage 2 High Five server environment - FandC-based core with custom improvements - Custom Community Board systems - Player ranking systems - PvP-focused gameplay logic - PvE progression support - Custom Espada instance and custom gameplay content - Vote reward system with multiple vote website integrations - Unified .getreward command - Website, account, ranking, vote, media, and download integration - Protection module integration - Admin tools and server management systems - Datapack and server packaging scripts Vote Reward System EspadaWorld includes a custom vote reward flow based around the .getreward command. The system verifies votes from all enabled vote websites and gives one unified global reward only after all required votes are confirmed. Current vote integration includes: - iTopZ - HopZone - L2Network - L2JBrasil - L2TopZone - L2Votes Vote system features: - Unified reward after all votes are confirmed - Configurable global reward list - Item amount and chance configuration - Cooldown / reuse protection - HWID / IP-based reward protection - Debug logging for vote verification - Anti-abuse logic for repeated reward claims Protection & Security The project includes protection-related modules and integration points designed to improve server and client-side security. Protection-related areas include: - Runtime protection module integration - Client protection support - Server-side validation systems - Anti-abuse logic around vote rewards and account actions - Configuration-driven security behavior - Release packaging support for protected builds Private protection details, keys, internal configuration, and production security data are not public. Custom Gameplay Content EspadaWorld Reborn includes custom gameplay work designed to give the server its own identity while keeping the Lineage 2 High Five feeling. Examples of custom content and systems: - Custom Espada instance - PvP-oriented systems and zones - PvE progression systems - Ranking and competition systems - Community Board extensions - Custom HTML and datapack content - Gameplay scripts and server-side feature extensions - Vote reward progression Website & Community Platform EspadaWorld also includes a modern web platform connected to the server community. Website features include: - Modern responsive website - Account panel - Download section - Vote section - Ranking pages - Media section - News and information system - Admin-controlled website settings - Theme/template system - SEO optimization - Performance optimization The website has been optimized for speed, accessibility, best practices, and SEO, offering a clean public presentation for the server and community. Useful Links Website: https://l2espadaworld.com   GitHub Presentation: https://github.com/worldespada-cloud/EspadaWorld   EspadaWorld Reborn is a cinematic Lineage 2 High Five private server project built on a customized FandC-based core.     Preserving safety and trust within our community is our priority. Thank you for your understanding and support!   Best regards,VastoLordes. Contact Information :  support@l2espadaworld.com
    • Hi,im looking for "stable" mid rate high five l2j files source included,i prefer not clean files but something already used by another server in the past,if you have something intrested and not shared pm me.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..