Jump to content

Recommended Posts

Posted

Work but can't edit l2.ini  (work with glory days, lindvior but not work with Epeisodion , Valiance)

yes you can edit the l2.ini

 

btw if you want to play the official server with a custom l2.ini or user.ini etc..., you will need a patched l2.exe so you do not get an error.

 

You could also create a file with the extension .cmd, for example l2.cmd and add this

 

start L2.exe -INI=l2x.ini -USERINI=Userx.ini -ng

 

then create 2 files l2x.ini and Userx.ini (if you want infinite zoom and more stuff) and copy the information of the original files inside.

Finally rename the file l2.bin to l2.exe.

 

You can now edit the custom userx.ini l2x.ini with notepad and without modifying the original files (use the l2.cmd to run the game).

 

example with infinite zoom and CacheSizeMegs=128

Posted (edited)

Thank you very much :)

 

If you are interested to teach / explain how to make those DDF files I am interested !

 

I listed there the files missing / not updated yet :) 

 

AbilityPoint.dat

ActionName-e.dat (got a strange output, but working)

AdditionalJewelEquipEffect

AdditionalNpcGrpParts

AdditionalSoulshotEffect

Edited by ptitlaby
Posted

Thank you very much :)

 

If you are interested to teach / explain how to make those DDF files I am interested !

 

I listed there the files missing / not updated yet :)

 

AbilityPoint.dat

ActionName-e.dat (got a strange output, but working)

AdditionalJewelEquipEffect

AdditionalNpcGrpParts

AdditionalSoulshotEffect

 

Copy ActionName-e data in excel is better to edit, from FileEdit is a total mess.

 

AbilityPoint.dat, AdditionalJewelEquipEffect, AdditionalNpcGrpParts and AdditionalSoulshotEffect this files are new in valiance so i need to make them from 0, It's a little more difficult.

 

About how to fix a ddf. here some tips

 

1) you need to read the l2disarm manual inside L2FileEdit\data\l2asm-disasm fold (do not continue until you understand)

 

2) Generally from a chronic to another, the ddf structure changes little, they often remove or add extra fields only. I will not explain much here just pay attention to the error in the FileEdit out, for example:
    | File scan error:
| | Row: 0/7180
| | Field: 26/70 (name: m_HumnFigh)

So before the field 26 you need to figure out what is missing or what to delete in ddf...

 

anyway to make a ddf from 0 you can start with the structure we will see below. Make a ddf file with the name of the data file than you want, for example hairExName-e.ddf and copy this.

FS = "\t"; 
HEADER = 1; 
RECCNT = 1; 
MTXCNT_OUT = 1; 
MATCNT_OUT = 1; 
ORD_IGNORE = 0; 
{ 
   UINT ROWS_NUM;
   CHAR UNK[200]; // <--- you can edit this value (200) if you need more or less info
}

We will always focus on the first row. for this, we need to set the option RECCNT to 1 (set it back to -1 when we are done).

the output will be a series of numbers that will have no meaning. The first number has to be ignored, this number tells the FileEdit, how many rows has the data, and only appears when the option RECCNT is set with a value other than -1 (this number will bring us a lot of problems later).

Now your job is to look for patterns like those shown in the table below. Up to you, find out what type these numbers belong (INT, HEX, FLOAT, UNICODE, ASCF, etc..)

 

211rx1z.png

 

So an INT type, is formed by 4 CHAR so the tags id and id2 could be 

//(the U before INT, means it is a unsigned number)
UINT id; 
UINT id2; 

The tag  "Name" is easy to recognize as a unicode, the first 4 numbers (a INT = 30) are the header, so the next 30 numbers form words ("Devoted Macho A") So we will use this

UNICODE Name;

The tag "html_color" is not so easy to recognize becose the header is a CHAR number in this case 80. The first 80 numbers form words, usually ends with the number 0.

ASCF Html_Color;

our final ddf would have the following structure

FS = "\t"; 
HEADER = 1; 
RECCNT = -1; 
MTXCNT_OUT = 1; 
MATCNT_OUT = 1; 
ORD_IGNORE = 0; 
{ 
   UINT id;
   UINT id2;
   UNICODE Name;
   ASCF Html_Color;
}

this would be an easy example. But there are cases where ddf structure is very complicated and the information we obtain from the first row will not be enough.

For these cases we will try to get the basic structure, same way as we did above, then set RECCNT to 2 3 ... n until we find errors like

    | File scan error:
| | Row: 20/7180
| | Field: 26/70 (name: m_HumnFigh)

and so modify the dff with new information from these errors.

 

PD: I forgot to mention, how to evade value containing the row number, well I'll just say, it is necessary to use the function "ENBBY", if you learn to use this function, you can do anything (Manual).

Posted

Thank you very much for this little guide, there are far more information that what I ever find on the internet.

 

I will try my best so, if I post anything that will be because I mastered it :D

  • 4 weeks later...
Posted (edited)

yes you can edit the l2.ini

 

btw if you want to play the official server with a custom l2.ini or user.ini etc..., you will need a patched l2.exe so you do not get an error.

 

You could also create a file with the extension .cmd, for example l2.cmd and add this

 

start L2.exe -INI=l2x.ini -USERINI=Userx.ini -ng

 

then create 2 files l2x.ini and Userx.ini (if you want infinite zoom and more stuff) and copy the information of the original files inside.

Finally rename the file l2.bin to l2.exe.

 

You can now edit the custom userx.ini l2x.ini with notepad and without modifying the original files (use the l2.cmd to run the game).

 

example with infinite zoom and CacheSizeMegs=128

 

 

that can work in l2.eu core server? i guess there is another way to do it because the only way to open the lineage 2 is via the website... have u ever tryed to do it there?

Edited by charliedvm
Posted (edited)

that can work in l2.eu core server? i guess there is another way to do it because the only way to open the lineage 2 is via the website... have u ever tryed to do it there?

for this to work you need to open the game from the l2.exe, and as you know, is not possible on l2.eu or at least I do not know how :)

Edited by Allengc
Posted

for this to work you need to open the game from the l2.exe, and as you know, is not possible on l2.eu or at least I do not know how :)

patched archives don't work in EU, it gives error when trying to open the L2 so it's impossible to patch and edit the archives, there is a way to edit them (add zoom etc) without patching it? so it will still work?...

  • 2 weeks later...
Posted (edited)

Hello allengc I don't see more online, where are you? anyway what about npcgrp.dat of God En? it can be opened, can you please check? here is npcgrp.dat of English Client Godess Of Destruction, ok thanks a lot for all your support and you have my msn, you can talk me there, thanks.

 

https://www.dropbox.com/s/aoif4aczd9rnhca/Npcgrp.dat

Edited by CriticalError
  • 1 month later...
Posted (edited)

Since few weeks I am having some troubles with the last Skillgrp.dat file from Valiance update  :

 


|   | L:\Lineage II\Tools\L2FileEdit\temp>"l:\lineage ii\tools\l2fileedit\data\l2asm-disasm\l2disasm.exe" -d skillgrp.ddf -e skillgrp-new.ddf dec-skillgrp.dat skillgrp.txt 
|   | 
|   | hL2disasm 1.4.1 by M.Soltys (aka DStuff).
|   | 
|   | File scan error:
|   |   row: 49531 / 89942
|   |   field: 17 / 23 (name: extra_eff)
|   | 
|-->--------------------

Here is the file I am using : http://l2.laby.fr/files/Skillgrp.dat . Does any of you found a solution ? Since It is not occuring on first row, I am not really sure on how this changed

Edited by ptitlaby
Posted

Since few weeks I am having some troubles with the last Skillgrp.dat file from Valiance update  :

 

Here is the file I am using : http://l2.laby.fr/files/Skillgrp.dat . Does any of you found a solution ? Since It is not occuring on first row, I am not really sure on how this changed

 

Since few weeks I am having some troubles with the last Skillgrp.dat file from Valiance update  :

 

Here is the file I am using : http://l2.laby.fr/files/Skillgrp.dat . Does any of you found a solution ? Since It is not occuring on first row, I am not really sure on how this changed

change the line INT newCounter2; to  UNICODE UNK_4; (link updated btw)

Posted (edited)

Since few weeks I am having some troubles with the last Skillgrp.dat file from Valiance update  :

 

Here is the file I am using : http://l2.laby.fr/files/Skillgrp.dat . Does any of you found a solution ? Since It is not occuring on first row, I am not really sure on how this changed

 

I'm using 010 editor to analyze the DAT structure, here is the template I wrote: (You have to make your own template for every DAT)

010 editor is very powerful on analyzing DAT file.

typedef struct {
    unsigned byte unknow;
    if(unknow & 0x40)
        unsigned byte unknow2;
    if(unknow != 0)
        if(unknow & 0xc0)
            wstring s;
        else
            string s;
} ASCF;

typedef struct {
    unsigned int size;
    if (size > 0)
        uchar s[size];
} UNICODE;

typedef struct {
    if(Count != 0){
    local int k;
for(k = 1; k<= Count; ++k)
    UNICODE items[Count];
}

} CNTRI;

typedef struct {
    unsigned int skill_id;
    unsigned int skill_level;
    unsigned int oper_type;
    unsigned int UNK_0;
    unsigned int mp_consume;
    unsigned int cast_style;
    signed int cast_range;
    unsigned int UNK_1;
    float hit_time[3];
    signed int is_magic;
    unsigned int UNK_2[3];
    unsigned int Count;
    UNICODE UNK_B;
        CNTRI ani_char_0;
	CNTRI desc;
    UNICODE icon_name;
    UNICODE icon_name2;
    unsigned int extra_eff;   
    unsigned int is_ench;
    unsigned int ench_skill_id;
    unsigned int hp_consume;
    ASCF nonetext2;
    signed int UNK_4[4];
    ASCF nonetext3;
 
} RECORD;

unsigned int number_of_record;
local int i;
for(i = 1; i<= number_of_record; ++i)
    RECORD r;

 Transformed to DDF:

//early version submitted by Allen (L2Sexi Server)
FS = "\t";
HEADER = 1;
RECCNT = OFF;
MTXCNT_OUT = 1;
MATCNT_OUT = 1;
ORD_IGNORE = 0;

{
	UINT skill_id;
	UINT skill_level;
	UINT oper_type;
	UINT UNK_0;
	UINT mp_consume;
	UINT cast_style;
	INT cast_range;
	UINT UNK_1;
	FLOAT hit_time[3];
	INT is_magic;
	UINT UNK_2[3];
        UINT cnt;
         UNICODE UNK_B;
	UNICODE ani_char[cnt];
	UNICODE desc[cnt];
	UNICODE icon_name;
	UNICODE icon_name2;
	UINT extra_eff;
	UINT is_ench;
	UINT ench_skill_id;
	UINT hp_consume;
	ASCF nonetext1;
	INT UNK_3[4];
	ASCF nonetext2;
}

Edited by syncia

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   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.




  • Posts

    • Yes, I have no problem going that route either. I've already done business with a couple of people and always paid. Thank you for your concern and for protecting the community from scammers. cheers. K
    • For many Elden Ring players, especially those short on time or seeking a specific build, buying items online has become a practical and time-saving solution. However, as someone who’s made that choice multiple times, I know firsthand that not all sellers are legitimate—and the risk of losing your money, or worse, getting banned, is real. Through trial and error, and countless hours in the community, I’ve discovered five proven methods to help players like you find authentic Elden Ring items to buy—safely, efficiently, and without risking your account. Here’s how to make sure you’re getting exactly what you need, the right way. 1. Choose Platforms That Guarantee Elden Ring Items Without Ban The number one concern when you buy Elden Ring items is avoiding account penalties. I've personally used platforms that explicitly promote delivery methods aligned with FromSoftware’s guidelines—like safe in-game drops, no cheats, and no modded content. Look for sellers or marketplaces that guarantee you’ll receive elden ring items without ban risk. If that promise isn’t clear or backed by community trust, move on. One time, I made the mistake of buying from an unverified Discord seller—within a week, I saw strange behavior on my account and had to delete my save file. Lesson learned: stick with professional services that know what they’re doing. 2. Rely on Established Marketplaces with Verified Reviews Always look for buyer feedback and real user ratings. Reputable platforms will have a track record of successful transactions and transparent customer experiences. I tend to avoid any site or seller that hides feedback or has a generic, incomplete website. The platforms I trust most let users post detailed reviews and show proof of item delivery—usually with timestamps and screenshots. That added layer of transparency gave me peace of mind the first time I placed an order, and it’s been part of my decision-making ever since. 3. Start with a Small Order to Test Reliability If you’re uncertain, try a small purchase first. This was my approach when I first decided to buy Elden Ring items. I ordered just a few smithing stones to upgrade a secondary weapon and see how the process worked. The seller delivered in under 10 minutes, and the transaction went smoothly. That small step helped build trust, and I gradually scaled up future purchases for full armor sets and talismans. It’s the smartest way to gauge service quality without taking a big risk up front.  [url=https://www.u4gm.com/elden-ring-items][img]https://i.pinimg.com/736x/9d/7d/d4/9d7dd41fc381c64fe9b93e5c11584513.jpg [/img][/url]   4. Confirm Safe Delivery Methods (No Bots or Cheats) Authentic sellers will provide clear instructions on how the item delivery will happen—usually through password-protected multiplayer sessions where they drop items directly to your character. That’s how I’ve received every safe delivery so far. If a seller talks about instant “mailing,” bots, or strange back-end tools, that’s a red flag. Those methods are often tied to bans or corrupted saves. Look for sellers who mention manual delivery, cooperative drops, or private session coordination—these methods are the standard for getting elden ring items without ban issues. 5. Ask for Live Support or Communication Options Good sellers are responsive, offer live chat, or message confirmations. I once had a situation where I accidentally gave the wrong character name for delivery. Thanks to a quick reply from customer support, they corrected it instantly. If a seller isn’t responsive or has no support at all, that’s a sign they may disappear after you’ve paid. A platform with clear customer service builds trust and shows professionalism—especially helpful if you’re new to the process.   There’s nothing wrong with wanting to buy Elden Ring items to save time or explore new builds. I’ve done it several times, and when done correctly, it can genuinely enhance the game without ruining the experience. But your safety comes first. By following these five proven methods, you can make sure the items you receive are legitimate, safe, and won’t get your account flagged. Always prioritize platforms that clearly offer elden ring items without ban risk, and when in doubt—start small, ask questions, and trust your instincts. How to Earn Fast: Buy Elden Ring Items Safely – No Risk of Ban
  • Topics

×
×
  • 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