Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Guide] Editing EXP rates etc. in ROWID.SPF with Python script

Initiate Mage
Joined
May 24, 2022
Messages
4
Reaction score
2
I did this for my S1 server setup from https://forum.ragezone.com/f522/guide-setting-la-tale-s1-1205612/
Process may work differently for other releases.

Both server and client use ROWID.SPF for a lot of values regarding stats, EXP rates, world layout and so on.

By using existing tools and some Python scripting, it is easy to modify all EXP and item drop rates of enemies for example.
This guide will explain how to do this and will provide a sample Python script for some modifications.

Important: ROWID.SPF of client and server must always be in sync, always copy the modified ROWID.SPF to both!

What you need

  • "LaTaleTool.exe" and "Packer2" from the "Tools\LDT_Editing" folder of Fantasy Tale: https://forum.ragezone.com/f521/release-fantasy-tale-season-2-a-1203153/
  • my Python3 script for scaling LDT values:
    • note: downloading from Pastebin, will result in a "...py.py" file, remove the second ".py" from the name, the name should be "LaTale_LDT_modifier.py"
  • a Python3 interpreter, e.g. Python 3 "Windows embeddable package" from

1. Preparing the files

  1. unpack the Fantasy Tale archive, you will need its "Tools" directory
  2. make a backup copy of "ROWID.SPF"!
  3. from your server copy "ROWID.SPF" to "Tools\LDT_Editing\Packer2"
  4. drag the "ROWID.SPF" and drop it on "UP_P_Unpack.bat", this will create a "Unpacked" directory

For each of "EFFECT.LDT", "MOBLOOT.LDT", "MOBBASE.LDT" and "QUEST_DROP_ITEM.LDT" in "Unpacked\DATA\LDT" repeat the following process:
  1. open LaTaleTool.exe, use "Choose File" on the right and open the .LDT file
  2. select "Tools" > "LDT to TXT" and save the file with .TXT ending (note: save the .TXT files somewhere else, not the "Unpacked\DATA\LDT" directory!), convert as follows:
    Code:
    EFFECT.LDT -> EFFECT.LDT.TXT
    MOBLOOT.LDT -> MOBLOOT.LDT.TXT
    MOBBASE.LDT -> MOBBASE.LDT.TXT
    QUEST_DROP_ITEM.LDT -> QUEST_DROP_ITEM.LDT.TXT
At this point, you could edit the .LDT.TXT files by hand (or using Excel) and jump straight to step 3 but the following script will make your life easier.

2. Patching the files with the Python script

I made a script to modify a couple of things by adjusting all entries in the LDT files individually. In its current form it lowers EXP and drop rates a bit, because the S1 server from my other guide is a tad too fast-paced by default for my liking. However, you can adjust the values in the script to also increase rates as you see fit.
The script is a base to get you started, do what you want with it.

  1. extract the Python 3 embeddable archive to subfolder called "python3" in the folder where your .LDT.TXT files are located
  2. place the LaTale_LDT_modifier.py script in the same folder as the .LDT.TXT files and the python3 subfolder
  3. open up the LaTale_LDT_modifier.py script in a suitable editor (e.g. Notepad++) and edit the values at the upper part of the script below the explanation text to your liking, e.g. "XP_RATE = 5.0" (= 5x EXP rate from monsters)
  4. in the folder where the .LDT.TXT files and script are, hold [Shift], right-click and select "Open command window here", then execute the script with
    Code:
    python3\python.exe LaTale_LDT_modifier.py
  5. (you can make this command into a .bat file in this folder for future executions)
  6. if you did everything correctly, the script should have created the following patched files in the folder
    Code:
    EFFECT.LDT.patched.TXT
    MOBLOOT.LDT.patched.TXT
    MOBBASE.LDT.patched.TXT
    QUEST_DROP_ITEM.LDT.patched.TXT
Warning: when repeating the patching process with the script, do not repeat the entire LDT to TXT conversion from main step 1 as this will multiply the already modified values from your last ROWID.SPF patch!
Simply keep the unmodified .LDT.TXT files next to the script, just change the script values and re-execute the script. The .LDT.TXT files will always be the unmodified base.

3. Applying the patched files by rebuilding ROWID.SPF

For each of the .patched.TXT files repeat the following process:
  1. open LaTaleTool.exe
  2. select "Tools" > "TXT to LDT"
  3. load the .patched.TXT file
  4. save the .LDT file to the original "Unpacked\DATA\LDT" folder using its original name (remove the ".patched.TXT" part from name), overwrite the existing file
After you have converted all patched files back to their LDT version, you can rebuild ROWID.SPF:
  1. navigate to where the "ROWID.SPF" and the "Unpacked" folder are
  2. drag the "ROWID.SPF" and drop it on "UP_P_Unpack.bat"
  3. this will update the "ROWID.SPF" with the contents of the "Unpacked" folder and replace it
  4. copy "ROWID.SPF" to your server and client
  5. restart server and client
When making changes to the Python script, simply re-execute it and repeat the process in main step 3.
If something goes wrong, remove the "Unpacked" folder and restore your backup copy of "ROWID.SPF" and repeat the process starting with main step 1.
 
Back
Top