Mercs em##: em00 = Enemies who spawn on the map instantly. em01->em05 = Enemies who continously spawn em09 = Bosses uEm## list: em0b (cSetInfoEm0b) - Spiders (default health = C8 00) Em0c (cSetInfoEm0c) - flying las plagas monster Em0d - Long neck? em10 (cSetInfoEm10) - town majini (default health = 20 03) em11 (cSetInfoEm10) - female town majini (default health = BC 02) em12 (cSetInfoEm10) - village majini (default health = BC 02) em13 (cSetInfoEm10) - big majini (default health = A0 0F) (default weapon = 00) em14 (cSetInfoEm10) - army majini (default health = 20 03) (with rocket launcher, default health = E8 03) Em1d (cSetInfoEm10) - Friendly majini from 1-1 (stands still) Em1e (cSetInfoEm10) - Friendly majini from 1-1 (stands still) em20 (cSetInfoEnemy) - executioner (default health = 40 1F) em21 (cSetInfoEm10) - town majini with megaphone (default health = 78 05) (mModelType = 00) em22 (cSetInfoEm22) - chainsaw boss (default health = 58 1B. berserk (blue pants) default health = 98 3A) em23 (cSetInfoEm10) - JJ (proper weapon = 5D) (default health = A0 0F, red JJ = 70 17) (00 model type is blue, 01 model type is red) em24 (cSetInfoEm10) - giant majini (proper weapon = 64) (default health = A0 0F) (needs a normal uEm10 majini in the same map, otherwise will crash when trying to load a file) em26 (cSetInfoEnemy) - prison executioner (default health = 20 4E) em27 - guardian LIN boss (gold edition only) em30 (cSetInfoEm30) - dogs (default health = 58 02 or 90 01) em31 (cSetInfoEm31) - dogs, different look em32 (cSetInfoEm32) - lickers (default health = 84 03) em34 (cSetInfoEm34) - reaper (default health = DC 05) Em40 (cSetInfoEm40) Causes immediate crash em41 (cSetInfoEnemy) - Boss from 5-2? em43 (cSetInfoEnemy) - Boss from 5-1? em44 (cSetInfoEm44) - Poposomethingbat em45 (cSetInfoEm45) - El gigante/Ndesu (does not work at all) Em46 (cSetInfoEm10) - crash em50 - Motorcycle Em52 (cSetInfoEm52) - Majini on motorcycle, it floats Em60 (cSetInfoEnemy) - crash Em61 (cSetInfoEm61) - Crow em62 (cSetInfoEm62) - chicken (default health = 01 00) Em63 (cSetInfoEnemy) - crash Em65 (cSetInfoEm65) - Snake em66 (cSetInfoEnemy) - crocodile (not visible) Em6c (cSetInfoEm6c) - Rat (default health = 01 00) Em6d (cSetInfoEm6d) - Small flying Bat Em6f (cSetInfoEm6f) - crash Em70 (cSetInfoEm70) - gaint spider Em71 (cSetInfoEm71) - small bird em80 (cSetInfoEm80) - Wesker from 5-3 (default health = 30 75) em81 (cSetInfoEm81) - Wesker w/coat from 6-3 (default health = 30 75) em82 (cSetInfoEm82) - Uroboros Wesker em83 (cSetInfoEm83) - Jill from 5-3 (first part of bossfight) (default health = 88 13) em84 (cSetInfoEm84) - Jill from 5-3 (default health = DC 05) ema2 - wesker LIN boss (gold edition only) uPl88Josh (cSetInfoPawn) - Josh? uEm92 (cSetInfoEm10) - Allyson (default health = 28 0A) (needs uEm11 in same stage otherwise game will crash when trying to find a file) uEm97Butcher (cSetInfoEnemy) - Reynard (stands still) om1303 (cSetInfoEm10) - Causes immediate crash (I think this is the truck on the bridge in 2-1) ---Search for "20 03" for a normal town majini and that's his health value. I think "BC 7F" is the max value for health.--- ---There is a weird type of crash which happens with certain combinations of enemies. The crash happens when playing in DX10 solo or duo, or when playing DX9 in duo mode with both players choosing different characters. I think the cause is a combination of some of these enemies army majini and/or allyson and/or dogs and/or village majini and/or army majini. I think the cause is having 4 of those types active at one time. Having only 3 (any 3) works.--- ---I think the max limit for EMs is em31--- ---search for 01 07 00 01 to find the value for weapon (weapon value is before those 4 values, ie 64 01 07 00 01) (it's usually 134 (hex) after uEm10)--- ---The previous variable of where the weapon is defined (4 bytes before), is the variable for the ammo for that weapon (so the majini carries additional dynamite for instance). It's normally 0000 or FFFF. 00 = 0 ammo Specific number = specific ammo FF FF FF FF = Infinite ammo--- ---01 00 00 00 01 after 4 FFFF (close to the end of the enemy definition) is the variable for the "mbLefty" variable (17E (hex) after uEm10) 0 = right handed 1 = left handed--- ---10 bytes before the health is the scale of the majini. 3 variables which are 4 bytes each. Default majini scale = 00 00 80 BF 00 00 80 3F 00 00 80 3F--- ---20 (hex) bytes after the health is the variable which defines which model type (mModelType) it uses (most apparent for army majini since different model types have different armor) List of model types for army majini 00 - no armor, shirt, beret 01 - no armor, shirt, hat 02 - no armor, shirt, bold 03 - no armor, shirt, blue beret 04 - no armor, shirt, beige hat 14 - no armor, sweat shirt 16 - no armor, grenades on chest 17 - armor on head, grenades on chest 18 - no armor, grenades on chest (hat) 20 - armor on chest, head and legs 23 - armor on chest and legs (beret) 24 - armor on chest and legs 28 - armor on head and legs 2A - armor on chest and head 30 - armor on chest (bold) 32 - armor on chest 34 - armor on legs 60 - armor on legs, sweat shirt, hat FFFF - random--- --156 (hex) after uEm10 seems to control some kind of general behavior (mAttribute?). This might be actually be something similar to bitflags. 00 00 10 - Makes the majini point at the player and do a taunt when he detects him 00 02 - ? 00 04 - makes enemy's head always explode as if player got critical hit on it. If a las plagas is defined, the enemy will always turn into a las plagas monster. 00 81 - makes the enemy act casual and ignore the player until he's walked to his goto position. 00 82 - seems to make the enemy run quickly to the goto (not sure). 80 00 - makes the enemy always run whenever the player is a bit further away. he'll practically never walk towards the player. 80 04 - combines 80 00 and 00 04? 80 80 (these are variations seen in ship deck, not sure what they mean, they all seems to make the enemy run most of the time as with 80 00) 80 82 80 86 90 82 --- ---15E (hex) after uEm10 is what controls the type of las plagas the majini can turn into (mPlagaType) 00 = no las plagas type 01 = longneck/cephalo 02 = crab/duvalia 03 = none? (dog las plagas?) 04 = flying las plagas/kipepeo 05 = none (04 is probably the last one) (in normal mercs, there can only ever be 4 las plagas active in a map at one time) (no mercy seems to have no limit) (normally, it looks like only damage against the head can start a las plagas mutation, otherwise they'll never mutate)--- ---166 (hex) after uEm14 is the value for what kind of grenade the army majini uses (mSubBomb). If they have it, I think they have infinite amount of grenades. 00 = no grenades 01 = explosive grenades 02 = flash grenades Grenades only work for these enemies: Army majini carrying stun rods Army majini carrying assault rifles JJs (JJs needs an army majini loaded otherwise the game will crash when JJ throws a grenade) --- ---Full item/enemy definitions in the XFS seems to start with "03" close to where the item/enemy id is. There's 2 parts of an entry which ticks and holds some unique information. It usually starts with something like "03 01 B2", with the second one ticking. Just after the uEm name, there's one part which is similar to "05 02 83", with the second part ticking. When copy and pasting entries between files, make sure the ticks are correct and the unique information matches up to other entries in the same file.--- ---2B distance after the second ID seems to be the full data block defining enemy position. Full length of that block is 80 (in hex).--- ---Near the start of an enemy (probably the same for items too) XFS file, before the first enemy definition is one variable which defines how many definitions are in that file (like in em00 for s401, there's the variable 0C for 12 enemies). That variable has to be changed for more definitions to be loaded from that file. (I think that variable is always 3 bytes before the start of the first enemy definition)--- ---"Enemy/item positions are 12 bytes long. 4 bytes for each axis. Second axis is vertical (+ being furher up in the sky). The bytes are in reverse order."--- ---The value after the health is the mJumpInit value. This is usually 00. If it's 01, then that enemy will spawn on the map instantly after the map loads. VERY handy to know. Although note that since each enemy is unique, then that enemy can't be spawned from a script (since he already spawned).--- ---AB (hex) after the uEm10 is the variable is the mSearchForward variable. Not sure how it works.--- ---D1 (hex) after the uEm10 is the "mFindPL" variable. 00 makes the enemy stand still. 01 makes the enemy start to actively search for the player.--- ---D6 (hex) after the uEm10 is "mIsGoto", which defines whether or not the enemy will follow his goto coordinate.--- ---DB (hex) after the uEm10 is "mIsGotoAng", which defines whether or not the enemy will follow his gotoAng coordinate.--- ---E0 (hex) after uEm10 is the "goto" coordinate for the enemy--- ---F4 (hex) after uEm10 is the "gotoAng" angle for the enemy--- ---B9 (hex) after uEm10 is the boolean which I think defines whether or the enemy will stand still at Goto coordinate.(mAreaKeepType?) (I think it also forces the enemy to run to the goto if 1)--- ---FSM info: "Last part StartEmSet is an array with all the enemies to be spawned from an em##. Here's an example of several full array items (from s407\startemset) 15 00 0C 00 1E 00 00 00 01 00 00 00 02 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 15 00 0D 00 1E 00 00 00 01 00 00 00 02 01 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 00 15 00 0E 00 1E 00 00 00 01 00 00 00 02 01 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 01 00 00 00 00 15 00 0F 00 1E 00 00 00 01 00 00 00 02 01 00 00 00 00 00 00 00 01 00 00 00 03 00 00 00 01 00 00 00 00 As you can see, 2 parts of the array item ticks with 1. And the entire length of one array item is 22 (hex) bytes. After the last item in the array is 3A (hex) bytes until the end of file. Like this (from s407\startemset): 01 00 00 00 03 00 16 00 32 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 01 00 00 00 00 00 00 00 01 00 00 00 FE FF 00 00 01 00 00 00 00 00 00 00 00 00 00 00 1 of those bytes are relevant to the size of the array. Which is 16 (in this case, the amount of enemies in em00 is 10). That byte is 7 bytes after the last item in the array. (I am thinking this byte might actually be near the start of the array instead, 3 bytes before the first item in the array) I think I figured out where the em## is referenced in a FSM file. I think it's in the actual array itself. For instance, here's one item from s401\EmSetArea0: 13 00 6E 00 1E 00 00 00 01 00 00 00 02 01 00 00 00 02 00 00 00 01 00 00 00 11 00 00 00 01 00 00 00 00 If you move C (hex) bytes after "1E" you'll get 02. I've been checking several different FSM and that seems to match up to the em##. Like the rats in s104 are in em05, and the byte is 05. And in EmSetStart, that one is always 00." (after some testing, I think there's a limit of how high the em## can go. 40 doesn't work. 29 does work) If you move 14 (hex) bytes after "1E" you get the value which refers to specific enemy inside the em## file. You can't re-use the same enemies multiple times. -Here's an easier way of replacing the one byte in array which links to the em##. Search for this"1E 00 00 00 01 00 00 00 02 01 00 00 00 01" and replace the last byte with whatever the em## the spawn array originally links to and then replace with a similar string just with the last byte being the new em##, for instance: "1E 00 00 00 01 00 00 00 02 01 00 00 00 1D" which is for em29. -There seems to be 2 types of enemy arrays. The ones which start with emset_p0001 (for instance), and the indicator for how many entries in that array is always 3 bytes before the first entry. And array which start with something like emset00~copy_p0001 which I'm not sure how to read.---