ESL editing tutorial & Enemy Editing tool download
Nov 2, 2017 11:58:52 GMT 10
Adngel, david flores, and 12 more like this
Post by Mr.Curious on Nov 2, 2017 11:58:52 GMT 10
ESL editing tutorial
(Editing Enemy Data)
(Editing Enemy Data)
Complied by .Mr.Curious 11-2017
EDIT - 2023 I will keep this old tutorial up and running, but since there is a newer tool at our disposal now I have created a completely new guide to use the script that was created by user MarioKart64n. You can view the Google Doc, and get the script HERE.
As there are many people interested in swapping out enemies in RE4UHD I thought I would upload the Japanese tool for ESL editing and explain how to use it. Another reason I am creating this tutorial is that soon there will be some new tools for RE4UHD released by Son of Persia that will allow us to create custom stage mods. Part of the process of creating a custom stage is to edit the enemy data and since his new toolset does not include any tools for editing enemy data we will still have to use existing tools to help us achieve this. In any case, the Japanese tools I have included are just fine for the job. That being said, sometimes a quick HEX edit is sometimes easier & faster These tools will work for the 2007 Ubisoft version of RE4 as well. To begin with, I would first suggest watching this video by Wizard to get the basics of HEX editing enemy data editing but once you use the Japanese tools you wont have to HEX edit the values as the Japanese tools have an easy to use GUI.
For my tutorial we will be using tools created by the master modder Crzosk (more links below)
Here is the new DOWNLOAD link for the Japanese tools (see ELS tool in package). PASSWORD FOR ARCHIVE IS 'Japan'. There is now an updated English version of the tool that was modified by @raz0r THANK YOU!!! While this tool was initially developed for editing the 2007 version files of RE4 it will still work on editing RE4UHD enemy data files. The download also includes the following enemy table in PDF format:
ABOUT EDITING ENEMY DATA
File assignments:
Omake00.esl = Assignment Ada
Omake01.esl = Mercenaries (Village and Castle)
Omake02.esl = Mercenaries (Island and Waterworld)
Omake03.esl - Omake09 = Seperate Ways
emleon00.esl - r100-r109
emleon01.esl - 109-r201
emleon02.esl r202......
The rest of this list is incomplete but you can tell which stages are loaded by looking at the room number in the tool. (see last columns section 'MAP1' & 'MAP2' of this tutorial below).
ABOUT WHERE THE INFORMATION IS STORED & LOADED INTO MEMORY
from the old site:
"Emleon00 is loaded at the beginning of the game. So to see the changes you've made, you'll have to begin the game from the start, or from the point where the enemy data is first loaded. When you reach a point in the game when it uses a different emleon file, it memorises it. And when you load a game, it's using the emleon file that's in the game memory (savegame.sav file) NOT the one you edited".
So what this means is that once you save your game your enemy data is then stored in your savegame.sav file and will not be read frorm the .esl files unitil the next .esl load point. Just remember this; if you edit the data and make a save, then that is the data that will load when you load your save, otherwise the game loads the data from the BIO4\etc folder.
Also please note... If we are using raz0r's new RE4UHD Ultimate Trainer using the 'force reload' feature will take enemy data that is stored in the trainer and will not load from the .esl files.
Using CRZOSK Japanese tools
Please note that the tutorial for this was made with the Japanese version of the tools so the names will not appear in English in the photos below, but the tool in the download includes the English version created by Raz0r. First things First:
If we look at the photo below we see the numbers on the very left column are the ENEMY IDs. While mostly there for script refferences used by the game engine, these ID's can be useful to us to use in conjunction with other RE4UHD files like the ITA when we wish to spawn certain items from enemies (more on this in my ITA modding tutorial in hes, or the Son of Persia ITA tool Tutorial see ETS section).
Looking at the photo below we see the first column 'appear' (highlighted in blue 01) is used to determine if the enemy is always appearing. If the value is set to a value of 01 the enemy always appears, and if it is set to 00 then the enemy appears only when triggered by an event.
Now lets look at the next two input fields in the same photo below, this time looking at 'behavior' and 'type 2'
These colums are used for editing the enemy type:
The values in both of these columns work together as enemy ids are always 4 bytes long. By using the Enemy_types_HEX & DEC guide (also included in the download) we can look up the various enemy codes and input them in the tool ESL tool. In this example above we have:
0 - Regenrator - 36 00
1 - Iron Maiden 36 02
2 - 16 00 Ganado 1
3 - 16 03 Ganado 3
4 - 16 03 Ganado 3
5 - 22 00 Wolf
6 - 16 03 Ganado 0B
We can easily input new enemies into these field to change the enemies in game, but please note that some combinations of enemies will not work. You will know this if your screen suddenly goes grey while playing. This means you have a bad combo.
Now lets look at the next column:
Setting the 'action' value to 01 will make enemies more aggressive. Setting this value to 1f will make enemies freeze after taking 3 steps. There are other values like 2b which make dynamite appear all the time on top of the other weapon. See the 'Enemy Behavior List' section below for a full listing of enemy bahiors we can assign to enemies.
Next column we look at is the 'reaction' range which determines at what distance an enemy will spot the player.
Setting the 'reaction' range to a higher value will make enemies see you from a farther distance:
The next columns are for 'equipment' which are basically hats, face mask, etc. These values can also sometimes determine the weapon that is equipped by the enemy. . I have not fully explored all the combinations of this but the ones I did learn I took notes and shared in the download. The column after equipment 1 & equipment 2 is Weapon: Here's the weapon data values I know of so far:
81 - pitchfork
10 - chainsaw
08, 09 - scie
20 - hatchet
40 - torch
please see notes in download for more info on this and equipment values
Next is the enemy 'strength' column
Setting the 'strength' value to a higher will result in stronger enemies. For a gauge know that Chainsaw Ganados that are hard to kill are at a value of 6500. A normal Ganado is about 1200-1800 value:
Next is the location data of enemies which determines their position in the game in X, Y and Z coordinates:
CRZOSK TOOL LOCATION VALUES:
All location values are in X,Y,Z format (see below for explanation). The values are usually off by 1000 or 100 or 10
Example is: A value of X: 45777.57 = 45.77757) This depends on which room the enemies are located in. The developers of this game did not always use the same scale for models (sometimes different event for models in the same room), and not for the entire game either so you will have to experiment with an existing model to find its co-ordinates. Below I will explain the X,Y,Z coordinate system used in these tools.
X Y Z Values explained:
1st Z value is actually Y in 3ds max. This value is always inverted to negative so for example: 45777.57 = -45.77757
1st X value is not INVERTED
1st Y value is actually Z in 3ds max.
2nd Y is facing angle
2nd Z is rotation (weird.. leave at 0)
NOTES ABOUT LOCATION DATA
In order to have a reference of the room you are working on you will need Son of Persia's Collision Tool (not yet released as of October 2017) to draw the room models from an OBJ file. Until those tools are released you could also use Raz0r's Trainer to walk your player to where you want the enemy to be and simply write down the coordinates.
The last 2 columns are used to determine which stage and which room are being edited (MAP1 & MAP 2). The values seen in these colums are in little endian order (meaning the stage and room are reversed from how we are used to seeing them), so in the last photo above we see:
MAP 1: 00 (room)
MAP 2: 04 (stage)
this means that the room we are editing is r400 (00 04 reversed in little endian is 04 00) Stage is ST4, room is 00.
Another example would be the Graveyard which is room r108. In the editor it would be:
MAP 1: 08
MAP 2: 01
One thing to note about changing the order of appearance. This will change how the enemies are assigned to 'mobs' in the game scripts, so it may affect the entire file and make your enemies appear all in the wrong places. DO NOT CHANGE THE ORDER. If you wish to add new enemy ID entries you must do so at the end of the file (at the bottom after all the rest)
Enemy Behavior List
This list is for values in the ELS file as seen in the ELS_EDIT.exe tool by the master modder Crzosk.
When we modify the 'Action' offset in the Crzosk ELS_EDIT.exe tool the enemies will behave differently. We can change their behavior to do all sorts of things like run away, freeze, be invincible, fall, disappear etc. Below is a list of values I have compiled through my own research. There may be more values (or combinations of other values, like 'reaction') that I have not yet discovered. Feel free to experiment to see what you can find.
All values are in HEX values (not decimal). If you simply wish to hex edit this value, this will be the 4th row of values if seen in the HEX editor at a width of 32.
Some values have been skipped becaese they are repeats of other values that has the same function as one of the listed values.
VILLAGE GANADO BEHAVIOR LIST
00 - default
01 - stands until approached then walk towards player
02 - appear then fade away
0A - Farming 2 (pitching hay)
0B - Farming 3 (using wheelbarrel)
0C - Jumps down
0D - walks 3 steps, then runs towards player
0E - walks towards player immediately
11 - farming 1
13 - wont appear
18 - sitting cross legged until harmed
19 - stands still head always faced towards player (one hit kill, will not attack)
1A - Faming 4 (spreading seed)
1B - stands still, walks away (invincible)
1C - starts running forward, then slowly walks towards player
1E - stands still head always faced forward (invinvcible)
1F - walks 2 steps then stands still head always faced forward (invinvcible)
23 - stands still until approached
24 - repeatedly pulls out weapon (stationary, head always follows player)
25 - repeatedly pulls out weapon (stationary, head always facing forward)
26 - points at player and screams, the walks towards player
27 - wont appear
2C - remains stationary until harmed, then falls down as from height
2E - runs away and crouches while holding something
2F - starts some animation (unknown) then runs forward
30 - spwans enemy with plaga head
31 - starts some animation (unknown) then runs forward
33 - remains stationary until harmed, then attacks player (head always forward)
35 - remains stationary holding farmpick (invincible, but blood still appears)
36 - remains stationary (can be attacked), but will not attack player (head always follows player)
3B - farming 5 (carrying somethingon shoulder) walking forward
3F - Dead on ground, face down
If you want a list of enemies this is included in the Tool Download
Ok thats it ! Thanks to Crzosk for making this amazing tool and sharing the info with us all. Thanks to Raz0r for his English Translation of this tool.
More information on the usage of these tools can be found in the archive I created of his original site.
Also be sure to check out Crzosk's YOUTUBE page.
A downloadable version of this tutorial is available in PDF format HERE
(note that the Enemy Behavior list was added to this thread later and is not available in the downloadable version)
Happy Modding!
Mr.Curious
11-2017