Stage - Basic Functions

Stage.dat is the only dat.-file in the whole game, which have nothing to do with pictures. Because of this, it’s very easy to program. In the following document, all terms and their frequently used functions are explained. Only if you’re familiar with these, you should use combinations out of the last point or try to experiment yourself, because then it’s easier for you to find the source of the bugs. 
To get a rough overview about the self-programmed stage, you should play your stage in "Normal"-mode. If you’re not getting to much trouble, then it’s ok. For other levels of difficulty is valid: 
Easy: All enemies have only ¾ of the health points, noted in stage.dat, they’re not very fast and don’t use lots of special attacks. Heroes will not blink when getting up from lying.  
Difficult: The number of health points and the number of fighters is the same as in "Normal", but the enemies punch faster and they use more special attacks. 
CRAZY!: Additional to the "Difficult" data, roughly twice the amount of enemies appear with 1 ½ amount of health points. More accurate numbers provided under "ratio".
It should be noted that id51 Firzen faces x2 enemies & id52 Julian faces x3 enemies. In CRAZY!, they will face roughly x4 and x6 enemies respectively.
In 1.9c or older versions, you could bring a weapon from the a previous stage to the next. This feature has been removed since version 2.0 due to the new Recording feature.

Start of the data about a stage.
id: ...

This id-number declares, for which stage the following information is valid. There could be maximal 50 Stages, started at Stage 1-1 (id: 0) up to Stage 5-10 (id: 49), and Survival (id: 50-59). But the computer can’t show a ten, so instead he shows a short line. The computer ignores Stages with id-numbers higher then 59. The phrase after the "#" serve only for better orientation.

1-1 = id: 0 2-1 = id: 10 3-1 = id: 20 4-1 = id: 30 5-1 = id: 40
1-2 = id: 1 2-2 = id: 11 3-2 = id: 21 4-2 = id: 31 5-2 = id: 41
1-3 = id: 2 2-3 = id: 12 3-3 = id: 22 4-3 = id: 32 5-3 = id: 42
1-4 = id: 3 2-4 = id: 13 3-4 = id: 23 4-4 = id: 33 5-4 = id: 43
1-5 = id: 4 2-5 = id: 14 3-5 = id: 24 4-5 = id: 34 5-5 = id: 44
1-6 = id: 5 2-6 = id: 15 3-6 = id: 25 4-6 = id: 35 5-6 = id: 45
1-7 = id: 6 2-7 = id: 16 3-7 = id: 26 4-7 = id: 36 5-7 = id: 46
1-8 = id: 7 2-8 = id: 17 3-8 = id: 27 4-8 = id: 37 5-8 = id: 47
1-9 = id: 8 2-9 = id: 18 3-9 = id: 28 4-9 = id: 38 5-9 = id: 48
1-- = id: 9 2-- = id: 19 3-- = id: 29 4-- = id: 39 5-- = id: 49
Survival stages (id 50-59) are quite special. The phase counter will be displayed as "Survival Stage: x" where x is the phase number. If you advance to the next substage, the phase counter will reset to 0.
Start of the data about a phase. For survival, you can use "when_clear_goto_phase: x", where x is the phase number to go to when the current phase ends.
bound: ...
Bound is the length of a phase. The player & his allies can only walk/see up to this limit. The enemies will come from a little bit behind the bound-border on the right by default. You can use two bounds with the same value one after the other to not have the "Go" like in Survival, but it is not recommended because the game may not be able to proceed into the next stage then.
The data about enemies and criminals is noted here.
If all enemies of one phase are dead, this one is over and the next starts. A stage must have at least one phase to work. The "Go"-logo appears; in Survival it'd just increase the survival stage counter.
End of data about a stage.
This element is noted at the end of the dat.-file. In the original version of Little Fighter 2, it’s used after all stages are described the first time. But it’s not really important, so you can also leave it out.

Stage - Enemies

For the appearing of an enemy, you only need his id-number and the number of health points. By default, he comes from the right side after he appeared (not visible for the player) short behind the bound-border. For all other functions, you need extra-terms.

id: ...

Id-number (look at data.txt) of the character, which should appear. For characters, there’re also two random-id’s. Id: 3000 choose between Bandit and Hunter, id: 1000 between all characters that can be selected via Random (id 1-29).

hp: ...

Number of health points, the enemy should have (For comparison: The player itself have 500 health points). If there's no "hp", the enemy has 500 health points.

x: ...

This value shows, where the enemy should appear. Mostly, it’s used with a negative value, so the enemy comes from the left side. If there’s no x, he comes from the right side. The object may spawn at this exact coordinate plus a random number up to 300px to the right.

times: ...
ratio: ...

With "times" and "ratio", you can define more exactly, how often an enemy of the same id should appear. "Times" indicates the number, how often the enemy comes in succession, "ratio" how many enemies per team mate/player should come. Freed criminals are independent of this method. Here is a ratio table including exact numbers used for Crazy! difficulty.


These two elements have to be used together in one phase. "Soldier" appears as long as the "boss" is alive, up to a maximum of 50 times.
You can put "<soldier> times: 3" to make the soldier appear as long as boss is alive up to a maximum of 3 times.

join: ...
join_reserve: ...

If an enemy should join your team after his death, you have to add the term "join" with the number of health points he should have.
You can use join_reserve: to determine the number of reserves he has when he joins.

Stage - Criminals

If you want a criminal to appear, all terms noted here are necessary, excerpt "y" and "reserve". If you don’t believe, only a shadow will appear short behind the bound-limit and not visible for the player. Criminals are always noted in the first phase of a stage.

id: ...
All criminals are fixed in criminal.dat, so the id-number is always 300.
hp: ...
Number of health points, the freed character should have.
Note that criminals' HP will not change according to difficulty, although their AI will be affected.
act: ...

With the "act"-term, you define which character should appear as a criminal. "Act" holds the frame-number where the computer should start. In the normal version of Little Fighter 2, there’re seven criminal-characters, with their usual HP value (which is generally x2 of the enemies):

Monk = act: 0 , hp: 400
Mark = act: 10 , hp: 400
Jack = act: 20 , hp: 300
Sorcerer = act: 30 , hp: 200
Bandit = act: 40 , hp: 100
Hunter = act: 50 , hp: 100
Jan = act: 60 , hp: 500
x: ...

You also have to add an "x" with a value smaller then the largest bound in the stage. If not, the criminal will appear behind the bound-border and you can’t free him.

y: ...

"Y" decline where the shadow should be. But this is already noted in the dat.-file itself. It’s better if you leave "y" out, because it creates only bugs.

reserve: ...

"Reserve" shows, how many lives the criminal-character should have. After he died the first time, he fall from the sky with the same number of health points until the "reserve"-value is also exhausted. This tag should not be used on enemies because it will not work properly.

Stage - Objects

The only objects, used in the original stage are beer and milk. All other weapons fall down the sky with accidental nature. It should be noted that you cannot spawn any object other than type 0 or type 5 on a different y than -500.

id: ...

However, the id-number of the object is noted here. The id of milk is 122; the id of beer is 123. 

x: ...

This term includes the x-value, where the object should fall from the sky. The same here: the number has to be smaller then the largest bound-value of the stage. 


If you play with several teammates, you can also use the already explained method of “times” and “ratio”, to let appear more objects. 

# ...
The phrase after the „#“ serve only for better orientation.
© Little Fighter Empire

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.