So what is LF2 data?
LF2 data is the programming language of the game LF2.
With this language you will be able to create new fighters, weapons and backgrounds, and even create your own special version!
Why the data was developed?
Programming the EXE is very difficult, and not everyone can learn it.
So, a computer guy named Jiquera Modilano, who liked the idea of the game and the game itself, contacted the developers and suggested them that he will develop a simple programming language, so it will be easy to edit the game. And that's how LF2 data was created.
Why should I learn LF2 data?
The data is a necessary part if you want to make a LF2 version.
Its not enough to just design it, you need to know how to add new attacks, change the stage and put new backgrounds, and a lot of things that you can only do with data.
LF2 data is very different then other programming languages, such as C++ or java, it doesn't have variables and stuff like that; it's a simple language and it is easy to learn.
LF2 data is divided to 3 sections - objects, stage and backgrounds, and every section has a different structure.
Now that we know what data is, let's start with the big guide, which was assembled from the work of the data changers in the Israeli site.
Table of contents(click on the topic to jump to the section):
The data changer
You can download the data changer from the downloads section at the site, under the category recommended programs.
1. The tool bar
From left to right:
Opens a new file
Lets you open a data file or text
Saves the data file
Opens the printing options
Shows you how the page will look if you will print it (and some options)
Undo the last action
Redo the last action you've undo
8, 9, 10. Copy, cut and paste
Everybody knows what those actions do, therefore they wouldn't be explained
Searches for the text you want.
12. Jump to line
Jumps to the line you pick
13. Jump to frame
Jumps to the frame you pick
14. Search frame
Searches for a frame by name
Opens the help menu
bookmarks are points that you can create in the data file, and then jump to them easily.
To create / delete a bookmark: Ctrl + Shift +0-9: - you can use10 bookmarks.
To move a bookmark: Ctrl +0-9, according to the number of bookmarks
All blue text will be marked between these things - <>
text you will put inside those brackets will be blue
for example: <bmp_begin>, <frame>
everything related to frames Will be marked in green
Examples of use: itr:, bdy:
Dark red will mark everything related to tags.
Examples of use: pic:, state:
LF2 data, like any other programming language, have a sign that let you write notes. That sign is #
For example, if you want to write an itr is a punch, then write itr: # punch
Now you know how to use the software, you can learn the data tags. This section will explain only about the tags, for all the data tricks, go the guides section in forum data
an important part of LF2 data is the data.txt file. It is located in the data folder of the game, along with all LF2 data files
How do I get to the Data folder?
Remember where the game was installed. If the installation folder for a game, to sign, the folder LF2_v1.9, installation, and if the new game, then the folder is named LF2_v2.0.
if you just pressed Next all the time, log in to My Computer and Copy the following line at the address above:
C: / Program Files/LittleFighter2/LF2_v1.9
And if you have the new version:
C: / Program Files/LittleFighter2/LF2_v2.0
if it doesn't work, re-installed by one method (installation folder games clicking Next)
In both cases, you will now have a file of the game, a removing file, a text file and 3 folders.
Log in to the folder named data. There are all the sounds of the game, the data files and data.txt
So what is it Data.txt?
This file of information, from which the game takes the information on which files to upload Data and information about each one. Of them
It is divided into two parts - objects and Backgrounds.
in data - object is a character, weapon or attack.
This is how a line at data.txt looks like:
id: 0 type: 0 file: data template.dat
this is important! Every object needs his own ID.
If you add an object, you have to make up his ID-but there is two limitations:
1.There shouldn't be 2 identical ID's
2. The ID must be a number
here you will tell the computer what is this object
-1 Weapons such as clubs
-2 Heavy objects like rocks
-4 Weapons injection
-5 Other (such as broken_weapon)
here you will say where is the file
give the path to the file from the main folder
Usually the data file is in the data folder
But in some cases, such as the installation software of the site, the object receives a folder of its own
and then it's a different story.
Backgrounds on, this same thing, just not meaningful to the ID and do not TYPE. Backgrounds of the lines are down in most.
The objects are the characters, weapons, attacks the game. Among all Bdata has two parts - part of the BMP, and some הפריימים. הפריימים all objects are those with tags, and only part of the BMP varies with each type of object.
All Prime is composed of two parts - the first line add-in.
The first line is essential, while the additions are not required for the Prime Standard, but usually have them.
<frame> <Prime name> <number of rural>
What will always be that way in English, while her name in Hebrew - have an appropriate text to replace.
Please note that while the directory has a hyphen after each name of the tag - Bdata you should replace the dash בנקודותיים!
This is a tag determines which image will appear in which frame.
How to find what to write?
Enter to the sprites of the object.
If this figure, then you will have several files of images
If you pick 0, Start counting from 0
If you pick 1, Start of 70
If you pick 2 Start from 140 (except from Julian, in that case start from 84)
If its a weapon or an attack, then start counting from 0, apart from some exceptional.
When you come to the picture you want, write the number in the tag.
In the BMP part we will tell you how to find out the pic number even if the pic belongs to somebody else's data.
This is a difficult tag that requires complete guide of its own, it Determines the condition of the object.
This is some basic
0 - stance
1 - walk
2 - sprint
3 - Jump
5 - Dash
7 - Protection
14 - Death (and prevents movement)
There is a lot more, they are explained in various Data guides.
the special thing about states is that they can "program" a frame to an action.
For example, state: 0 is designed that when you press an arrow, the character will go to state: 1.
This tag defines how long the frame will be. Its number Determines how much frames the frame will wait.
One frame = 1/30 second. I.e.30 frames=one second.
if you want the frame will be paused for 1 second, write 29 (because wait: 0 is one frame)
Here you will write the next frame number.
There are special numbers --
999 - End of action. This number will take the figure to the start with.
1000 - Delete. This number will delete the object that have a next to it. It is mostly used to delete objects after they hit someone.
1100-1299 – disappear for a period of time, the bigger the number, the longer the disappearance.
dvx, dvy, dvz --
These tags Move the object. The value is in pixels.
X is a horizontal movement, positive number=forwards, negative number=backwards
Y is a vertical movement, positive number=down, negative number=up
Z is side movement, positive number=left, negative number=right (from the object point of view)
DVX is used for determining the speed of attacks:
in the flying frames of any attack, increase all the DVX equally
The higher the number, the faster the attack.
After this tag there will be a number.
The number Determines the relative position of the figure compare to its shadow (on the horizontal axle).
If the number is too high - the figure appears from behind the shadow. And if the number is to low - shadow appears behind the figure (Attention! Exact number isn't necessarily zero!)
If you do not know how to find the coordination. You can easily use trial and error.
* Attention! Shadow indicates your location of your map, but not the area can come to hurt you! So - if you design the game that the shadow is way behind the char. The char will be able to "leave" the stage when its close to the wall, because the shadow is in the stage, bt the char isn't
this Tag has the same idea as centerx but has many more uses.
Here you will also determent the position of the figure compare to its shadow, but on a vertical axle.
If the number is too high - the figure will be in the air.
if the number is too low - the figure appears under the shadow. (Not within the land. Just lower the stage.)
This tag has more uses because if you write a high number – the object will appear in the air in the frame you've changed
The difference between this and Dvy is that dvy is affected by gravity, the figure is moving to a certain point in the air, but in centery the figure is going straight to the point you set, without the influence of gravity
If you do not want to use the method to overcome gravity. And you want the shadow to be correct. You don't even need to know coordination.
Just Check tag settings file status what tag number written y: "". And the same correspondence also tag centery. What have you done now is just to guide the shadow image of the lower edge of the figure.
This tag is very useful!
After this tag there will be written the number of the frame the char will transfer to if you will press on certain key's.
How to know what key's to press?
by theTag itself. After the bottom line there will be written one of these add-ins:
- Clicking on the attack - Hit_a
- Clicking on the defense - Hit_d
- Clicking on the jump - Hit_j
*** All of the possibilities I showed must be In every frame!
If you don't want anything special will happen if you press on these keys, write 0.
All the options I will now show intended for making special attacks:
- Defense + forward / back + attack - hit_Fa
- Defense + up + attack - Hit_Ua
- Defense + down + attack - Hit_Da
- Defense + forward / back + jump - Hit_Fj
- Defense + Up + Jump - Hit_Uj
- Defense + Down + Jump - Hit_Dj
- Defense + jump + attack - Hit_ja
These are all the options that can show the tag hit_X.
don't forget that state can sometimes replace hit_X. for example, in state: 0, you don't need to write anything in hit_a to make a punch, the camputer will understand this itself.
Like in tag next here you can also use special numbers.
Use this tag to determine how many resources you will need to spend for a specific attack, usually a special attack like a ball.
The highest number you can write is 49,500, when the first three digits determine how much energy the char will spend, and the last two digits determine how much life the char will spend.
If you do not have enough resources to do the attack, you can not use it! (And no, there is no such thing a suicide attack)
Here the address of the sound file you will hear during a frame will be written.
As like all the files in the game, this file also needs to be in the data folder.
This tag is not required in every frame.
And if the sound is long, it will continue to play after the frame.
this tag appears under the first line.
There are 6 types of additions in LF2 data. Each one does something else.
the additions are added this way:
<Name of the add-> _end
the name of the add-in will be given in the guide, in addition to its action and its tags.
Means the point of blood. This addition will determine the location of the blood if you have less than one-third of life.
if this tag is deleted, the blood wouldn't appear when it suppose to.
This is the most simplest add-in.
Specify the location of blood on the horizontal axle, in relation to the char.
Specify the location of blood on the vertical axle, in relation to the char
* Note - "in relation to the char" means the point to the upper – left of the figure.
It takes time to target him, so be patient.
Tag refers to a very complex concept of the figure. It controls all matters related to catching and being caught.
If you put that add-in the State must be 9 – This is the catching state.
There are two kinds, which have tags that are a little different, so I'll explain both separately.
this is the catching kind, use it to hold someone (to catch someone you need an itr, but this will be explained later)
x, y -
the position of the caught in relation to the catching object.
Tag which also encountered in other additions. It always sets damages. In this case, Write down how much damage the opponent will take if you hit him.
write here the numbers of the frames the caught char will transfer to.
notice that you need more then one frame. Even when the caught character is being hit you use a frame.
Here you choose what your char will do if you attack when you catch. No need writing the catching-punch frame, that is how the chaos attacks of firen and freeze were made in little fighter reinforced
Write here which frame you're char will transfer to when he throw's the opponent.
Here you choose the throwing distances. In each of these tags write the distance by the appropriate route.
Sometime an odd value will appear – its meaning was not yet discovered.
here you decide If you want other characters will be able to hurt the caught char.
If so write 1, if not write 0.
Write down how much damage the opponent will take when you will throw it.
This tag is designed to enable and control adding attacks after the catching (not exactly, but indirectly).
It controls the actions of the character you've caught, if you didn't throw it.
7 or -7 - it will go to the falling frames. He can run away with a jump
3 - It will go the end of a jump, so it will be hittable, but he can attack you.
Here you decide if you want to be able to throw the char to the opposite diraction.
If so write 1, if not write 0.
decide here if you want you're char to be in front or out back.
If so write 11, if not write 10.
the second kind in cpoint, its related to the frames where the char is caught
Don't be confused, in this kind the state must be 10!
Determines the point where the char can be caught on a horizontal axle
As above for vertical axle.
The frame that the char will transfer to when it gets a hit in the front
The frame that the char will transfer to when it gets a hit in the back.
Summons. It used mainly for attacks like energy ball, but can be used for replication such as Rudolph's attack. Please note - only one opoint can be in every frime!
Here, there are also 2 types. But this time they use the same tags
Type 1 - summon any object.
Type 2 – summon and hold a weapon (only for characters)
Determent the point in which the object will appear compare to the location of the object creator on a horizontal
As above for vertical axle.
you will summon by the data file of the objact. But the object doesn't have to be summoned from frame 0. write in this tag the number of the frame you want the object to start from (it can also be 0, of course)
Defines how much momentum (forwards/backwards) the object will get when it will be summoned.
As above for the up - Down
this is the most important tag. Write here the ID of the object you want to summon.
We learned on ID in the chapter "Data.txt".
Here you decide how many copies will come out in the summon.
if you want the copies to go forwards, write the number of copies 10 time bigger
20 - Two copies
120 – twelve copies
There are two different cases --
0 - only one copy.
10 - only one copy, that goes to the right no matter what.
If you want that the copies will go to the opposite direction, just change the 0 to 1.
21 - Two copies that will go back
121 – twelve copies that will go back.
Everything related to weapons.
Here there are 3 types of kind:
Kind: 1 --
a weapon in the char hands
x, y -
Two tags specify the location of the weapons on the character (of course, write each tag separately)
The frame that the weapon will be in the character hands. Each frame represent a different angle of the weapon. Find which picture is in which frame and that's how you find out the right number. You need to look in the frames "on_hand".
Determines the attack mode of the weapon. if you will attack with a weapon, on which state will it use.
1 - standing / walking
2 - Jumping
3 - Running
4 - Dashing
The number you will write will give the weapon the same state to what is written next to the number.
That is, if you will write1, the weapon will do the same thing as if you were attacking while standing.
Determines whether the figure cover the weapon
1 if yes, 0 if not
The throwing power of the weapon, if you decide to throw it forward.
You can do something weird and throw the weapon backwards with a negative number.
As above for height. Of course, the weapon will go higher if you Write a negative number.
As above for right and laft if you will press an arrow at the same time.
Weapons held in hand.
Appears in the weapons data.
There are just two different things --
Mark the size of the weapon
width X, height Y
All other tags are like kind: 1
Weapons fall from the character's hand.
all tags are like kind: 1 ... only they refer to the weapons while falling.
This addition is intended to affect the environment. It's prime and most obvious use is hurting another character, but it has other uses too.
this addition has many kind's.
Standard injury, such as a punch.
x, y -
a point, that from it there will be measured the square that will determine which section of the screen will be impacted.
In relation to the object, of course.
w, h -
We still didn't saw these tags, they determine the width and height of the area of impact.
w-sets the width of the area of impact (from left to right)
h-set the height of the area of impact (from top to bottom)
dvx, dvy -
These determine how far the opponent will go after the impact.
arest, vrest -
To hit one enemy use arest, and to hit several enemies use Vrest.
Write how much frames the itr will wait before it will hit again.
Each figure has 70 fall-points. Here you decide how many points will be reduced off the opponent. When the points run out, the enemy will fall.
Some values that you can write:
20 – The opponent will fall after the forth hit (most character's have it)
30 - The opponent will fall after the third hit (like in dennis, deep and julian for example)
60 - The opponent will fall after the second hit (like in Henry's arrows)
70 - The opponent will fall in the first hit (like in most strong energy balls)
Each figure has 10 points of protection. Here you decide how many points will be reduced of the opponent. Points are relevant only if the opponent defends during the attack. When the points run out, the defence is broken (this char looks like he lost balance).
We've seen it already, determines how much damage the enemy will get.
Extending the damage area along the Z axle.
Tag determines what effect the attack will do:
0 - Standard strikes
1 - Cutting (with blood)
2 - Fire
3 - Ice
4 - Rebounds attacks
5 – mutes the hitting sound.
20.21 – burning characters that are already burned (like fireballs)
23 - like an explosion of Julian
30 - Freezing figures already frozen (like freeze's whirlwind)
40 - also rebounds Balls
Allows catching "folded" characters.
x, y, w, h -
Like in kind: 0
The number of the frame the catcher goes to. You need to write two numbers, the first to catch from the front, and the second to catch from behind.
The number of the frame the caught char goes to. You need to write two numbers, the first to be caught from the front, and the second to be caught from behind.
x, y, w, h -
Like kind: 0
Will always be 1.
Let you catch a char as long as he has a bdy (explained after this addition)
Tags are like kind: 1
Allows a falling character to hurt other figures.
These tags like kind: 0
Allows picking weapons without going to the picking frame.
The tags are like kind: 2
impact you're friends and you. But the injury will raise the health-points, like john's ball
x, y, w, h -
Like kind: 0
Will always be 1.
This tag has a completely different use from the normal way.
Write here the frame that the object will go to after impact.
how much life-points will be raised after impact.
For some reason, only 100 works (on 1.9 version)
Appears only in attack files and it reflects balls.
Tags are like kind: 0
What makes Henry's flute. Make objects float, except for attacks, in the air.
x, y, w, h -
Like kind: 0
Will always be 1.
how much damage the opponent will get.
it don't injure, it blocks. You use it when you want to block objects, it used in a frozen character, heavy weapons, icebergs, etc.
x, y, w, h -
Like kind: 0
Will always be 1.
There are also several other types but they are not important, so I didn't wrote them.
Perhaps the simplest add-in after the blood-point.
Determines the area that the object is hittable.
This time, both kinds use the same tags.
is standard objects
the second kind is a special effect – it works only if in data.txt the object is a type: 5.
You need to write 1 and then the number of the frame in a 3 digits-number form.
This causes the bdy to go to the frame number when it get hit by an itr.
For example: 1050 will make the object go to frame 50 when it will get hit.
This is used in captives, when they get hit they go to the frame from it they develop into the character.
The tags you already knew for defining an area.
This set's important information that isn't found in frames.
The BMP settings is located at the beginning of the data file.
They start at <bmp_begin>, and end in <bmp_end>.
Each character has it's own BMP settings.
the name that appears when you select the char.
Write here the address of the image that appears in the character select.
You need to write the address stating from the main LF2 folder.
Write here the image that will appear next to the personal states bar of life and energy of the character.
This tag is important! After which, there is a link to one of the sprites-page files of the figure. The file is written in the data files of the char.
It is important to be precise or the game wont work! Some of the problems while loading the game is because you deleted one of the sprites-page files.
After writing the address, there are several tags needs to write:
Width of each Sprite (a single picture of the char in a certain state)
Height of each Sprite
number of sprites in each row
the number of sprites in each column.
* All the following tags do not use colons! *
how many frames will end until the character will start walking after you've pressed an arrow.
Walking speed, measured in pixels for frame.
Walking speed up or down.
how many frames will end until the character will start walking after you've pressed an arrow twice.
running speed up or down.
the walking speed with a heavy weapon.
the walking speed with a heavy weapon up or down.
the running speed with a heavy weapon.
the running speed with a heavy weapon.
Must be negative.
The distance of the jump if you press left or right.
The distance of the jump if you press up or down.
Height of a jump after running. Attention - must be negative.
dash distance upwards / downwards if you click on one of these arrows.
height of the flip dodge. Again, must be negative.
Distance of the flip dodge.
Weapons and attacks
Attention! All of these tags require colons!
As with the figures.
the weapon's life. for comparison a char has 500. Note: Only for weapons!
how many life of the weapon will drop after it hits the ground. Note: Only for weapons!
what sound will be heard when the weapon would hit other weapons.
what sound will be heard when the weapon would hit the ground.
what sound will be heard when the weapon would break.
the stage file - stage.dat - uses a different type of Data.
it will be explained in this chapter.
It's a little simpler.
First of all, open stage.dat, which is also in the data folder.
You will need it while reading.
in each stage (1-2, 2-4, etc.) There are a few phases, framed like this -
This is actually made for enemies, helpers, and bottles that come all at once. There are a couple of phases in each stage.
A full stage (like 3-5, 2-4, etc.) looks like:
<stage> id: 0 # stage 1-1
<phase> bound: 793
This is just an example of course.
The tags are:
the stage begin.
this is where you determine which stage is it. It can be between 0-49.
First stage – 0-9
second stage – 10-19
third stage – 20-29
forth stage – 30-39
fifth stage – 40-49
Each step has, on the original game, 5 stages, and it leaves free places for your own stages.
Please note: You cannot put a number 50 to reach a sixth stage. This is impossible, period.
Explained in the chapter on software - this is just a note, you can remove it.
Beginning of a phase in the stage.
Sets the length of the phase.
Allows you to put background music if you give an address (only in the new version!)
End of phase. The game will write GO.
End stage (note that typically there will be more phases)
There are lines within each phase, they are the stage itself, it determines who will come, if weapons will fall from the sky and more. For example:
<phase> bound: 795
id: 30 hp: 50 x: 800 times: 2
id: 30 hp: 50 x: 800 times: 2
The id of the summoned character, in this case its bandit.
how much life the character will have (a standard character has 500, here you can define how much do you want).
Where the figure will appear, lengthwise (it will not be always exactly the same place, but in the area), by the bound, if its 795 - x: 800 This is behind the screen on the right. To appear on the left add a minus before the number.
How many times he would come. For example: If you write 3, after you kill one bandit, another one will "replace" him. Tag determines how many "replacements" will be.
Additional commands that don't appear in the example:
Same thing as the - x But height.
Starts the data file with the ID you've chose, from the frame you write.
the char joins you after it dies. Write how much life the char will have after it joins you.
Soldier and boss-
another possible command.
At the end of a line of information on the upcoming figure, you can add a tag <boss> or <soldier>.
What does it do?
when you play in that phase, as long as the<boss lives, soldiers will keep on coming no matter what's written in the times..
Weapons drop --
to make a weapon drop write:
id: 122 x: 300
in this case, a Bottle of milk will fall.
the id of the weapon, same thing as in the characters data.
fall place, again, like in the characters data.
You can also add --
Write a high number (500, for example) if you want the weapon will drop from the sky.
The third and final kind of data, and in my opinion, it's also the simplest.
The name of each background:
The one with the building in it
the background that you fight Julian in the stage mode
The great wall.
The background with volcanoes and snow.
Where are the data files?.
Go into the bg folder
If you want The game backgrounds, go to sys
If you want backgrounds can easily edit, go to template
Now enter the folder that you want - and there are the data file. He always called Bg.dat
Tags at the beginning of the file --
Here there will be the name of the background, as it appears in the menu.
how wide is the background
Reducing the first number increases the space to go up. reducing the second number will change the background as you will have less space to go down.
The shadow. After the space write the place where the shadow is (start from the main folder).
It usually like this:
bg / sys / lf / s.bmp
This is an example of the shadow in the forest.
the shadow's height and width.
Starts in layer: and ends in Layer_end.
after them writr the location of the picture you want in this layer.
The order is important, the order of the layers is the order that the game puts it one on top of the other in the background.
Important! The maximum that you can use is 30 layers! If you put more the background will not work!
What does it mean?
Look at photos of any template background and notice that in Pic1 there is a black area.
This black area cannot be seen in the game, but if it must appear, you can fix it in this tag.
To activate the transparency write 1.
If you don't want transparency, write 0.
The image location
You can see in all kinds of Backgrounds that they move slower when you run across the arena. Here you adjust it.
If the picture is of a landscape, it should be with the value of around 750-800
If this is the area on which the characters move, you need a value between 1000-1500
Be patient when you're to find the precise value of this.
x, y -
Again the x and y which we met so many times in the guide. Like always, adjusting those values requires patience.
If you want the picture to appear several times in the background, you do not have to write the lair again and again. Instead Use this tag.
The value you put here, is the number of pixels from the x and y that you made, that the picture will appear again.
If you don't understand what does it mean, look at Stanley Prison for example. See the pole with the fire that repeats itself? This is what I meant.
cc, c1, c2 -
You can also do animated background, like the arena audience.
Put all the images of the animation as layers in the data.
Now add all the tags above to each layer in the animation.
What do they do?
Number of the frames you will have.
For example, if you write 14 – you will have frames 0-13.
the number should be the same in every layer.
The frame number (of the frames you have) in which the image will appear.
The frame number (of the frames you have) in which the image will disappear.
For example, if you like an animation of 14 frames, and the picture that you put will be the first to appear and for 2 frames, this is how the layer will look like:
bg sys sp fire1.bmp
transparency: 0 width: 2400 x: 0 y: 128 cc: 14 c1: 0 c2: 1
Look at the data file of the prison, it helped me understand.
List of guides which I used for writing guide. (from the Israeli forum)
i didn't exactly copied the guides, I changed the text a bit. But still I used them.
Big thanks the authors of the guides.
(Because the guides are in Hebrew, only the names of the authors will be written)
Thank you all!
Any requests, questions, etc, can be sent in the Data Forum: