Jump to content
  • 0

L2Homage; Making L2 Modding Accessible





I'm making this post to test the waters. If what I'm about to show you doesn't interest you, I'll take it as a sign to stop spending time on it. I've been hoping that the old adage "If you build it, they will come" holds true, but I think it's time to straight up ask for feedback. I've contacted a few people for possible collaboration, but none have shown much interest (which is completely fair).


I've been working on L2Homage in my spare time. It's not a quick project, and it will take a long time to complete. It will be done modularly, so it will be usable in stages. The first one is already functional, but I'm still doing tests.


What is L2Homage?

L2Homage is a modding tool meant to make modding L2 OFF files easier. It doesn't do anything you can't do on your own, by editing a handful files.

L2H is an extensive editing tool for both client and server files for Lineage 2 Epilogue. While still in development, the intention of this project is to provide users with a tool that’s capable of repurposing most of existing ingame content. This will allow users to rethink and reshape the world of Lineage 2, providing the hordes of burnt out players with new, exciting content, without having to spend hours learning how to manipulate the data structure. The hope is to see a bunch of unique, new game worlds appear, instead of relaunches of the same L2 experience we’ve all been through too many times to count.


How much will it cost?

L2H will be free, and eventually completely open source. This is not a project created for monetary gain, it’s solely meant to revitalize the stagnating server scene.


Which L2 version does it use and why?

L2H is meant to be free, so the server files should be as well. The most complete, freely available L2OFF files are the Gracia Final/epilogues files, and with Eressea’s extender, it feels nearly bug free. It’s a very strong, free base to build this project on. This tool would likely follow Eressea's extender. If she decides to upgrade L2 version, L2H would most likely follow.


When will it be done?

This is a side project with a single developer attached. It won’t be completed fast, but each milestone will be made available to the public, once tested and functional. The development will be modular, with each version providing new options. If you're interested in helping out, let me know.


Why are you making this post now?

L2H is meant to help users customize the world of Lineage 2. Every user has a different vision, and as such it’s valuable to gather not only critique, but feature requests and suggestions from anyone interested in the project. The development direction is not set in stone, and is open to change. It's also a test to see if such a tool is even desired. If people tell me this is a waste of time, I'll throw in the towel. There's no reason to continue working on something unwanted.


Which language is L2H developed in?



How do I use L2H?

Install the L2OFF gracia epilogue server files and Eressea’s extender, then open L2H. There are 3 folders in the L2H directory; client, server and data. Copy the required server script files into the server folder and the decrypted client .txt files into the client folder. There is a .txt file in each folder, informing you of what goes where. Don’t touch the data folder, as it only keeps track of the work you’ve done so far. When you’ve placed the data files in the correct folders, open the application and go to the load/save tab. Click “Load All” and wait. When done, the other tabs have been populated with data, which you can edit freely. When you’re done editing, click “Save All”. If you don’t click save, your data isn’t exported. Now copy the modified files back where they came from. Client files need to be encrypted with an encryption tool again.


What does it look like?

Here are a few screenshots of the application in action. It’s still very barebone, but that will change in the future. Loading functionality:



Weapons editing:



Armors editing:



Etc editing:



Sets editing:



How does L2H work?

Decrypted Lineage 2 client files and server script files are structured in a very specific way, one that can be parsed and edited. When developers add or remove content to the L2OFF platform, they do this by hand. This often requires editing more files to add a single item. For instance, if you were to add a single weapon, you would have to edit weapongrp (client), itemname-e(client), itemdata(server) and item_pch(server). L2H does this for you with one input. There are a LOT of variables for items, most of which aren't relevant to the modder, and it's easy to mess it up. One wrong space, and your server won't run, or your item won't work. Instead of adding new items from scratch, modders choose a weapon to use as a template. L2H copies all relevant information, and exposes variables that are interesting to edit in an easily accessible grid view. When you're done editing, click export all to get the correctly formatted files. You can copy those directly into the server and client (client files need to be encrypted again).


Can I add custom models and animations?

If you want to add custom models, you will have to do that the old fashioned way. There is a lot more to adding new models to the game, compared to repurposing it. Completely new content like that, however cool it may be, is not the goal of L2H. That being said, once you’ve added the new content, you can use L2H to edit or copy it.


Why are you not planning to develop X?

If you have a feature request or suggestion, feel free to message me or comment in this post. The planned features are those that are absolutely possible to deliver. The limits of L2H is well known, and there won’t be an attempt to include features beyond those. If your suggestion falls within the possibilities of L2H, it will most likely get added to the list.


When will the next version be available?

When it’s ready. This is an ongoing project, and while updates may be far apart, it’ll be finished one day. The project uses no copyrighted info. It's all relying on reverse engineering the data structure. It only reads the data you feed it. Development will continue until all values available for change have been exposed. If I'm doing anything I shouldn't, please let me know. I have no intention of breaking the law.


Will you be running a server?

No. That's not my motivation.


Will it work for other versions of Lineage 2?

That’s not the focus of this project, so that’s not a compatibility that will be added. It will work with any version of Lineage 2 that uses the exact same data structure as Epilogue. Should a newer version of L2OFF be made available, there’s a slim chance L2H will be updated to fit that data structure.


Will it mess up my files?

Remember to keep backups. There can be bugs.


Can I delete items?

You can only delete items you’ve created yourself. If you start removing data from the client and the server, you’ll most likely run into issues. If you delete an item that exists in the game world, you might run into issues as well. It’s better to disable these from being acquired, and then remove them from players’ inventories.



What's in the current version?

Check the roadmap and version description below.


Version 1.0 - Items - Done

Adding, modifying or deleting weapons

Adding, modifying or deleting armors

Adding, modifying or deleting etc items

Adding, modifying or deleting sets


Version 2.0 - NPCs

Adding, modifying or deleting NPCs

Adding, modifying, deleting or assigning spawn points

Adding, modifying, deleting or assigning drop lists

Adding, modifying, deleting or assigning multisell shop lists

Adding, modifying, deleting or assigning specific AI


Version 3.0 - Items Continued

Adding, modifying or deleting recipes

Modifying item enchant success rate

Cell input options lists, to see which options you have per cell

Adding, modifying or deleting tattoos


Version 4.0 - World

Adding, modifying or deleting hunting zones (Won’t appear on map)

Adding, modifying or deleting zone names (Won’t appear on map)


Version 5.0 - Quests

Adding, modifying or deleting quests

Adding, modifying or deleting rewards


Version 6.0 - Raids

Adding, modifying or deleting Raid Bosses

Creating custom NPC behavior through interface


Version 7.0 - Core

Modifying the base attributes, hp, mp, regen etc of each class and race per level

Modifying the XP requirement per level

Modifying race and occupation description

Adding, modifying or deleting loading help tips

Adding, modifying or deleting system messages (“You carefully nock an arrow”)

Modifying server name


Version 8.0 - Pets

Modifying pet stats and attributes


Version 9.0 - Skills

Adding, modifying or deleting Skills

Modifying when and if classes learn different skills


Version 10.0 - Ingame Systems

Adding, modifying or deleting manor items

Adding, modifying or deleting fishing items



Let me know what you think,




Edit: I'll leave this up for a few weeks and gauge the interest before deciding the future of the project. Thanks for your interest.


Edit2: It seems people are interested, so I'll continue developing this. I started a Discord for anyone interested: https://discord.gg/97yAsCA


Edited by Bumble
  • Like 2
  • Thanks 1
  • Upvote 8
Link to comment
Share on other sites

Recommended Posts

  • 0

Thanks, that works! It also encrypts the l2encdec.exe and the dlls though, any way to prevent that?


EDIT: Nvm, I got it. This works:


for /f "usebackq delims=|" %%f in (`dir /b "%~dp0\*.txt"`) do l2encdec -e413 %%f "%~dp0enc\%%f"


Thanks for the help

Edited by Bumble
Link to comment
Share on other sites

  • 0

That sounds good sepultribe, thanks. The file extensions L2H will be handling are .dat and .ini, at least for a long time. I don't see other file extensions being relevant for now, but let me know if I'm wrong.



Link to comment
Share on other sites

  • 0
for /f "usebackq delims=|" %%f in (`dir /b /a:-d "%~dp0"`) do (
set "_ext="
if /I %%~xf == .dat set _ext=1
if /I %%~xf == .ini set _ext=1
if defined _ext l2encdec -e413 %%f "%~dp0enc\%%f"

yeah most probably, this is the version that accepts only DATs and INIs, u can expand it to more extensions simpy by adding more ifs

Link to comment
Share on other sites

  • 0

Progress Update:

- Massively improved feedback from log panel

- Implemented loading numbers for spawns, both original and custom

- With help from @sepultribe, I implemented automatic client encryption and decryption of files.

- With the same approach as used for encryption/decryption, L2H now calls an assembler. This turns the decrypted files into editable txt files. The dissasembling and assembling is also automated and executed when user clicks export.

- Reworked directory structure. Now there's a Data and an Export folder.

- Data contains 4 folders:

  • Decrypted client files
    • Encrypted files are automatically decrypted, disassembled and placed here for L2H to access.
  • Encrypted client files
    • User places .dat files here, untouched. They will only be used the first time L2H is run, to cache a data baseline.
  • L2H
    • Contains all custom data the modder inputs, as well as pointers to droplists, npcs, spawns etc.
  • Server
    • Contains all the relevant .txt files from the server Script folder

- Implemented confirmation boxes so you don't end up exporting when you don't want to.

- Changed NPC Name ID Generation from reusing the number ID, to a more tangible name ID based on the clone source.

- L2H now requires the .dat files to be available in the "Data/encrypted client files" folder, instead of the .txt files.

- Any changes made without exporting, will still be saved in the txt format.



Below is a screenshot of the completed loading process and export process:



I'm happy with the progress! I can now copy in the .dat files and the server script files, click Load All and start modding right away. I still need to implement some delete and remove functionality, but everything else seems to be working so far.


If you're curious, it takes about 2 minutes and 45 seconds to load everything. It takes 5 seconds to save, a bit more when you have to encrypt data. L2H uses a little less than 800mb RAM right now. Everything "heavy" is now parsed, except for AI (which is an entirely different beast). 


When delete/remove is implemented and I have access to a server to test some exported script files on, where I can confirm they work, I'll share a test version for people to break. I'll start work on parsing smaller .dat, .ini and server script files after that. It's kinda silly that I still haven't added l2.ini.


EDIT: I had a little extra spare time left. Removing spawn areas and npcs now seems to work. All that's left now is to test exports on a server, and provide some input proofing.



Edited by Bumble
  • Upvote 1
Link to comment
Share on other sites

  • 0

I've finished adding some initial input proofing. I'm sure there's some issues to be found still, but if the modder just knows where to enter text and where to enter numbers, it'll be fine. I'll fix it as it comes.


I'm moving on to testing as soon as I can. When tests are successful, I'll share the current version. Again, if anyone has a test-server I can access, that would be very helpful.





Link to comment
Share on other sites

  • 0

Progress Update:

I've mostly been sharing updates on the Discord channel and privately with Weedy, but it may be a good time to share some news here again.


L2H is coming along nicely. Weedy has been very helpful with testing, and together we've eliminated a lot of crashes and bugs.


There has been a lot of updates since my last post here, too many to keep track of. From what we can tell, everything seems to work completely, except for two things:

  • Set description text
    • Custom items that are part of a set, aren't showing up correctly when reading the chest armor item description text.
    • Set bonuses seem to activate regardless of amount of set items equip.
  • Fixed positions for npc spawns.
    • NPCs seem to not spawn at the fixed position, even though exported files indicate that that should be the case.

We're currently trying to fix those two issues. When they're fixed, the first test version will be shared. I expect to share later this week.


We're able to create custom copies of any weapons, armors, misc items, sets, npcs, spawn areas and droplists with a single click of a button, and everything loads into the client and server files crash-free.


There's also a few new features that I haven't mentioned here before:

  • L2H now reads L2.ini for easy server address IP editing.
  • A toggle to choose to only export custom spawn areas. Create your own empty world canvas with one click.


Here's a few screenshots from testing, courtesy of the always helpful Weedy:







I think I talk for both Weedy and I, when I say we're excited to see what people will make with this tool.

There's still a lot of ways L2H could crash or bug out, but with more testers, we can find the issues faster.


Stay tuned,



Edited by Bumble
  • Like 1
Link to comment
Share on other sites

  • 0

Quick update:

Sets seem to be fixed now:



We still need to test if fixed npc positions work. After that works, first version of L2H will be made available.

It may not be today, but it's very soon.



  • Like 1
Link to comment
Share on other sites

  • 0

Heya guys!


Some more screenshots from the tests with L2Homage capabilities :)


Bumble just added a feature within L2Homage to add default attribute stats to items, here's a quick example:




It is extremely easy and fast to add those parameters to the item, as well as change things like name, description, stats, etc. (and actually multiple defensive attributes can be added at the same time to one, just no visual support in UI. You can see the stats change on the left with only 1 attributed item equipped). 


Some other things that can be done:


Populating spawns, for example changing orcs and goblins to unicorns right under Elven Village:




In spawning tab, there is even a drop-down menu with selection of which npcs you wish to add to the spawn, so it goes fast and simple.


Quickly adding an NPC to the starting zone (within existing spawn with Nerupa and Newbie Helper):




One more mini-video from testing custom sets:




So it's quite convenient and user-friendly, and I am personally enjoying using and playing around with it. TBH, @Bumble is a freakin genius, and that tool is one hell of a thing for modding :P Super excited for more things to come and very happy to be able to help with testing!


  • Like 1
Link to comment
Share on other sites

  • 0
5 hours ago, Gansallo said:

Super cool software!


Thanks, I've put quite a lot of effort into this, it's nice to know it's appreciated :)


I'm currently working out a system for editing AI. I was planning on doing skill editing first, but some of that stuff seems to be hardcoded into the server (mainly skill effects). I'll add skill power/level/mp cost/etc editing, and classes/level requirements soon(ish), but I'm super into the AI structure for now. Also have a lot to do in real life.


I'd appreciate it if we moved to the release thread instead though, so if anyone wants to chime in, please do so in the release thread.



Edited by Bumble
Link to comment
Share on other sites

  • 0

go over grp files...


i have issue with weapon sample range


converted high five weapon dagger for c4 client and did by mistake sword range 


it is kinda of a hell of numbers and a small wrong space leads to no encrypt


i wont pay for itemname modifier xD  neither npc


but i could be interested if you reach over  armorgrp weapongrp etc

anyway... well done 

Edited by etherian
Link to comment
Share on other sites

  • 0
2 hours ago, etherian said:

go over grp files...


i have issue with weapon sample range


converted high five weapon dagger for c4 client and did by mistake sword range 


it is kinda of a hell of numbers and a small wrong space leads to no encrypt


i wont pay for itemname modifier xD  neither npc


but i could be interested if you reach over  armorgrp weapongrp etc

anyway... well done 


Hey there, thanks for testing it out.

L2H is only intended to work for Epilogue at the moment. If you try to load high five or C4 data, you'll get incompatible data.


Small wrong space leads to no encrypt, yes. I've tried to protect the input to prevent user errors like that, but it's possible I've missed some of them. If you let me know where it happens, I can correct it.


You won't ever have to pay for L2H, it'll always be free.


Did you download the newest version, 3.1?

Also, it'd be best to take these suggestions to the release thread, now that it's finally available.

Edited by Bumble
  • Upvote 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock