Jump to content
  • 0

Question

Posted (edited)

Hi,

 

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?

C#

 

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:

image.png.9e37d5f9f0732ac8bc2b89cbfc2828dd.png

 

Weapons editing:

image.thumb.png.a025f82977580ce24ee8191200177e1e.png

 

Armors editing:

image.thumb.png.1d1696d8cd76299ba08461de62588782.png

 

Etc editing:

image.thumb.png.a7eeb22c4552cd53f320169fdb2019c4.png

 

Sets editing:

image.thumb.png.b940972f62ef82e891d9512546dc4a88.png

 

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,

 

-B

 

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

Recommended Posts

  • 0
Posted (edited)

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
  • 0
Posted

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.

 

-B

  • 0
Posted
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

  • 0
Posted (edited)

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:

08LRG9p.png

 

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.

 

-B

Edited by Bumble
  • 0
Posted

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.

 

Thanks,

-B

 

  • 0
Posted (edited)

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:

xx4X8xR.gif

 

OBWlPO5.png

iVMXc0P.png

iagu3b4.png

 

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,

-B

 

Edited by Bumble
  • 0
Posted

Quick update:

Sets seem to be fixed now:

3Krj0uf.png

 

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.

 

-B

  • 0
Posted

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:

 

7e99b5f651792d6b6380df776b3bd739.png

 

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:

 

Shot00009.jpg

 

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):

 

Shot00008.jpg

 

One more mini-video from testing custom sets:

 

https://i.gyazo.com/6ea7ded4e198bec20be68c7de04ff5de.mp4

 

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!

 

  • 0
Posted (edited)
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.

 

Thanks!

Edited by Bumble
  • 0
Posted (edited)

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
  • 0
Posted (edited)
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

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

    • ⚡ Fast order delivery is active 24/7! Upgrade your personal Gmail to Gemini Pro with full 2TB storage and premium Google One features today.
    • Update M54: Global HP/MP/CP consumable handling expanded beyond combat-only usage. Offensive mage idle recovery with learned skill Battle Heal. Spellhowler/Storm Screamer prioritizes Hurricane, using Vampiric Claw mostly below 90% HP. Major structural refactor initialized: Added category/class organization such as Archer, Dagger, Tank, Mage, Healer, Support and Specialized class files. Further structural cleanup. Extracted combat memory/state and more class-policy logic from the main controller. Added global stuck/inactivity watchdog for bots blocked by terrain/geodata. Added unreachable dropped ground-item timeout/temporary blacklist. Reworked Necromancer/Soultaker PvP: Dominator level 78+ maintains learned Arcane Power toggle on. Overlord/Dominator level 44+ maintains learned Soul Guard toggle automatically. Stability/scalability update: Bot controller ticks staggered instead of all starting in the same phase: Same 350 ms update rate retained Reduces simultaneous AI workload bursts. Removed the old manual aggressive-monster EVT_AGGRESSION bridge. Phantoms now use native Lucera setActive() behavior so monsters aggro them naturally. Reduced unnecessary NPC scans and native AI event pressure. Added saved-bot equipment overrides using a separate database table:         lucera_autobots_items Existing lucera_autobots remains the main saved-bot identity/state table. Equipment rows are linked to saved bots through bot_id. Added optional convenience view to show bot name together with equipment overrides:         lucera_autobots_items_view Added editable equipment slots in columns: Weapon Shield Helmet Chest Legs Gloves Boots Necklace Left/Right Earrings Left/Right Rings Equipment override values: 0 = use normal class/level profile item -1 = force slot empty >0 = equip that Item ID Custom equipment works only for saved database bots. Default class/level equipment profiles remain unchanged. Supports custom equipment from No Grade to S Grade, regardless of the bot's current level. Added validation for invalid item IDs and incompatible equipment slots. Added handling for: Two-handed weapons vs shields Full-body armor vs separate leggings Added all-grade Soulshots and Spiritshots to bot inventory/replenishment so custom lower-grade weapons still use the correct shots. Mage profiles that already use Blessed Spiritshots keep that behavior with all relevant grades available. First save the bot normally so it exists in table:         lucera_autobots Then open:         lucera_autobots_items Find the row with the same bot_id and edit only the equipment slots you want. Example: weapon_id = 6608 shield_id = -1 helmet_id = 0 chest_id = 0 legs_id = 0 gloves_id = 0 boots_id = 0 This means: weapon_id 6608 → custom weapon shield_id -1 → no shield all 0 values → keep normal default profile equipment After editing the DB, despawn and respawn the saved bot so M54 reloads its equipment overrides. Do not edit bot_id. Use it only to identify which saved bot the equipment row belongs to.   DOWNLOAD
    • It will be multi client so it will detect the client from the files and adapt the packets and asset loading. I am aiming for C4 and H5 after IL
    • this is just to simplify your life, time, and can be done for free by yourself just watch some tutorials, in case you don't wanna waste time check it out!   https://l2getwork.art   https://l2getwork.art/showcase.html  
    • Good job! Any chance for it to be downgradeable or at least compatible with older chronicles?
  • 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..