XCOM: Enemy Unknown

File information

Last updated

Original upload

Created by

SirDrD

Uploaded by

SirDrD

Virus scan

Safe to use

Tags for this mod

31 comments

  1. PrivateHazzard
    PrivateHazzard
    • member
    • 0 kudos
    The mod installed correctly, but when I started trying to add the other helmets back in, started getting errors. Here is my log:

    Alias added successfully: FractionChanceOfFemale
    Alias added successfully: FractionChanceOfChoosingAmongAllHairOptions
    Alias added successfully: PercentChanceOfBeard
    Alias added successfully: PercentChanceOfColoredHair
    Alias added successfully: RemoveSelectHelmetsFromRandomSelection
    Searching for object named XGCharacterGenerator.CreateTSoldier ...
    Object found!
    Alias added successfully: XGCharacterGenerator.CreateTSoldier.kSoldier.TAppearance.iHaircut
    Searching for specified data chunk ...
    Can't find specified data!
    Execution stopped at #11 command named [FIND_CODE].
    Restoring from backup: C:\Users\Matt\Desktop\PatcherGUI/backup/4100135496/1624079506
    xcomgame.upk restored from backup
    Restoring from backup completed successfully
  2. Mozzer42
    Mozzer42
    • member
    • 0 kudos
    I'm getting the error as well but I don't have Long War installed.
  3. SirDrD
    SirDrD
    • member
    • 4 kudos
    Sorry about being away.The upload has been updated to work with the latest longwar.
    1. chromeweasel
      chromeweasel
      • supporter
      • 6 kudos
      I love your mod. I'm putting up a collection of mods that make Long War more cinematic. Do you mind if I post an edited version of your file? I will put a link to this page and specifically credit you with creating this mod.
  4. Jasina
    Jasina
    • member
    • 0 kudos
    I'm keep getting "Error patching UPK" while trying to install it on Long War Beta 15e.
  5. SpazmoJones
    SpazmoJones
    • member
    • 13 kudos


    Would a name changing mod cause the "error patching UPK"? The only other things I have other then long war are ShowCountryNames, Enhanced Tac Info (both installed successfully with the GUI), Sleeve Genie wizard and defaultnamelist (LW).

    Here's the debug....

    Writing backups to I:\Downloads\X-com Mods\New folder\PatcherGUI v 7_3-448-7-3\PatcherGUI/backup/3959604382/1433393294
    xcomgame.upk saved to backup directory
    Backup completed successfully

    Executing external PatchUPK program:
    "I:\Downloads\X-com Mods\New folder\PatcherGUI v 7_3-448-7-3\PatcherGUI/binaries/PatchUPK.exe" "I:\Downloads\X-com Mods\New folder\Randomized Soldier Appearance-514-1-0\RandomizedSoldierAppearance.txt" "I:\Steam\SteamApps\common\XCom-Enemy-Unknown\XEW/xcomgame/cookedpcconsole"

    PatchUPK
    Installing mod: Greater Randomized Soldier Appearance.
    Opening package ...
    Package file: I:\Steam\SteamApps\common\XCom-Enemy-Unknown\XEW/xcomgame/cookedpcconsole/xcomgame.upk
    Package opened successfully!
    by SirDrD (Darrel Dumontier)

    Mod description:
    This mod will allow for as wide a range as possible of initial random solider appearances, while keeping a decent look for each soldier. This is to prevent all soldiers from looking the same, and to have each solider look like a unique individual. This mod was created mostly for Long War, but should be compatible with the base EW game. It is just a few simple changes but it increases the look and variety a lot, with some impressive looking soldiers.
    The following is a summary of the changes. Note that many of the values can be changed by changing values in the customization section. So if for example you do not want any soldiers with brightly colored hair, their is a place you can change that probability to zero. Here is a description of the changes.
    1) Over half of men will get a randomly generated beard. (The XCOM default had this set to 1/4. And with many of the beards being subtle, very few soliders ended up with distinguised beards.)
    2) The gender ratio was changed to 1/3 female. (This was done since there are more customization options availble for men. Not only do men have the beard option, but many of the female hair options were similar to each other.)
    3) Each race was given a greater range of possible standard hair colors.
    4) If a soldier does not have a beard their is a 20% chance that he/she will have a non-standard hair color for his/her race to represent their hair being dyed. (Beards were left out, since dyed beards looked too silly. Dyed eyebrows look a little silly as well, but it is less noticable, and it still looks good overall.)
    5) A greater range of haircuts was opened up to randomization, including bald.
    6) Their is approximatly a %20 chance of a soldier getting a random headgear choice. (The default list are any headgear where the eyes are not covered. Which headgear is available (if any) is easily customizable.)
    In long war their was a setting that allowed the player to set the headgear each soldier starts with. If that setting is used this mod should not overwrite it, and each soldier will start with that headgear.



    Alias added successfully: FractionChanceOfFemale
    Alias added successfully: FractionChanceOfChoosingAmongAllHairOptions
    Alias added successfully: PercentChanceOfBeard
    Alias added successfully: PercentChanceOfColoredHair
    Alias added successfully: RemoveSelectHelmetsFromRandomSelection
    Searching for object named XGCharacterGenerator.CreateTSoldier ...
    Object found!
    Alias added successfully: XGCharacterGenerator.CreateTSoldier.kSoldier.TAppearance.iHaircut
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x00000369 (873)
    Writing data chunk of size 0x00000008 ( at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x00000369 (873)
    Write successful!
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x00000425 (1061)
    Writing data chunk of size 0x00000008 ( at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x00000425 (1061)
    Write successful!
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x000004AB (1195)
    Writing data chunk of size 0x00000008 ( at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x000004AB (1195)
    Write successful!
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x00000612 (1554)
    Writing data chunk of size 0x00000010 (16) at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x00000612 (1554)
    Write successful!
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x0000067F (1663)
    Writing data chunk of size 0x0000002A (42) at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x0000067F (1663)
    Write successful!
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x000006E9 (1769)
    Writing data chunk of size 0x000000EA (234) at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x000006E9 (1769)
    Write successful!
    Searching for specified data chunk ...
    Uninstall script saved to I:\Downloads\X-com Mods\New folder\Randomized Soldier Appearance-514-1-0\RandomizedSoldierAppearance.txt.uninstall.txt
    Can't find specified data!
    Execution stopped at #23 command named [BEFORE_CODE].
    Restoring from backup: I:\Downloads\X-com Mods\New folder\PatcherGUI v 7_3-448-7-3\PatcherGUI/backup/3959604382/1433393294
    xcomgame.upk restored from backup
    Restoring from backup completed successfully


     
    I posted a fix for this in this same thread: http://forums.nexusmods.com/index.php?/topic/2413394-increased-random-soldier-appearance-variance/page-3#entry23527749
     
    The mod author hasn't updated the main mod file with this fix yet unfortunately.
  6. dubiousintent
    dubiousintent
    • premium
    • 78 kudos

    ...
    Searching for specified data chunk ...
    Uninstall script saved to I:\Downloads\X-com Mods\New folder\Randomized Soldier Appearance-514-1-0\RandomizedSoldierAppearance.txt.uninstall.txt
    Can't find specified data!
    Execution stopped at #23 command named [BEFORE_CODE].
    Restoring from backup: I:\Downloads\X-com Mods\New folder\PatcherGUI v 7_3-448-7-3\PatcherGUI/backup/3959604382/1433393294
    xcomgame.upk restored from backup
    Restoring from backup completed successfully

    Your problem is that something (probably either the version of LW or one of the other mods) has changed the [BEFORE_CODE] hex values the mod is searching for. This is not a PatcherGUI problem, nor one with the mod itself unless it has not been updated to work with your version of LW. (Which is why we always ask 'which version' of LW?) With conflicting mods, you can only report the conflict to the mod authors (which means YOU need to pin down which mods conflict by reversing them from latest to oldest and then installing them in pairs) and hope they can work out a solution for both, or choose one between them.

    -Dubious (not the mod author)
  7. Tilarium
    Tilarium
    • premium
    • 1 kudos
    Would a name changing mod cause the "error patching UPK"? The only other things I have other then long war are ShowCountryNames, Enhanced Tac Info (both installed successfully with the GUI), Sleeve Genie wizard and defaultnamelist (LW).

    Here's the debug....

    Writing backups to I:\Downloads\X-com Mods\New folder\PatcherGUI v 7_3-448-7-3\PatcherGUI/backup/3959604382/1433393294
    xcomgame.upk saved to backup directory
    Backup completed successfully

    Executing external PatchUPK program:
    "I:\Downloads\X-com Mods\New folder\PatcherGUI v 7_3-448-7-3\PatcherGUI/binaries/PatchUPK.exe" "I:\Downloads\X-com Mods\New folder\Randomized Soldier Appearance-514-1-0\RandomizedSoldierAppearance.txt" "I:\Steam\SteamApps\common\XCom-Enemy-Unknown\XEW/xcomgame/cookedpcconsole"

    PatchUPK
    Installing mod: Greater Randomized Soldier Appearance.
    Opening package ...
    Package file: I:\Steam\SteamApps\common\XCom-Enemy-Unknown\XEW/xcomgame/cookedpcconsole/xcomgame.upk
    Package opened successfully!
    by SirDrD (Darrel Dumontier)

    Mod description:
    This mod will allow for as wide a range as possible of initial random solider appearances, while keeping a decent look for each soldier. This is to prevent all soldiers from looking the same, and to have each solider look like a unique individual.This mod was created mostly for Long War, but should be compatible with the base EW game. It is just a few simple changes but it increases the look and variety a lot, with some impressive looking soldiers.
    The following is a summary of the changes. Note that many of the values can be changed by changing values in the customization section. So if for example you do not want any soldiers with brightly colored hair, their is a place you can change that probability to zero. Here is a description of the changes.
    1) Over half of men will get a randomly generated beard. (The XCOM default had this set to 1/4. And with many of the beards being subtle, very few soliders ended up with distinguised beards.)
    2) The gender ratio was changed to 1/3 female. (This was done since there are more customization options availble for men. Not only do men have the beard option, but many of the female hair options were similar to each other.)
    3) Each race was given a greater range of possible standard hair colors.
    4) If a soldier does not have a beard their is a 20% chance that he/she will have a non-standard hair color for his/her race to represent their hair being dyed. (Beards were left out, since dyed beards looked too silly. Dyed eyebrows look a little silly as well, but it is less noticable, and it still looks good overall.)
    5) A greater range of haircuts was opened up to randomization, including bald.
    6) Their is approximatly a %20 chance of a soldier getting a random headgear choice. (The default list are any headgear where the eyes are not covered. Which headgear is available (if any) is easily customizable.)
    In long war their was a setting that allowed the player to set the headgear each soldier starts with. If that setting is used this mod should not overwrite it, and each soldier will start with that headgear.



    Alias added successfully: FractionChanceOfFemale
    Alias added successfully: FractionChanceOfChoosingAmongAllHairOptions
    Alias added successfully: PercentChanceOfBeard
    Alias added successfully: PercentChanceOfColoredHair
    Alias added successfully: RemoveSelectHelmetsFromRandomSelection
    Searching for object named XGCharacterGenerator.CreateTSoldier ...
    Object found!
    Alias added successfully: XGCharacterGenerator.CreateTSoldier.kSoldier.TAppearance.iHaircut
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x00000369 (873)
    Writing data chunk of size 0x00000008 ( at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x00000369 (873)
    Write successful!
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x00000425 (1061)
    Writing data chunk of size 0x00000008 ( at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x00000425 (1061)
    Write successful!
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x000004AB (1195)
    Writing data chunk of size 0x00000008 ( at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x000004AB (1195)
    Write successful!
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x00000612 (1554)
    Writing data chunk of size 0x00000010 (16) at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x00000612 (1554)
    Write successful!
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x0000067F (1663)
    Writing data chunk of size 0x0000002A (42) at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x0000067F (1663)
    Write successful!
    Searching for specified data chunk ...
    Data found!
    Relative offset: 0x000006E9 (1769)
    Writing data chunk of size 0x000000EA (234) at
    Scope: Object Data
    Offset (absolute): 0x009E67F7 (10381303)
    Offset (scope-relative): 0x000006E9 (1769)
    Write successful!
    Searching for specified data chunk ...
    Uninstall script saved to I:\Downloads\X-com Mods\New folder\Randomized Soldier Appearance-514-1-0\RandomizedSoldierAppearance.txt.uninstall.txt
    Can't find specified data!
    Execution stopped at #23 command named [BEFORE_CODE].
    Restoring from backup: I:\Downloads\X-com Mods\New folder\PatcherGUI v 7_3-448-7-3\PatcherGUI/backup/3959604382/1433393294
    xcomgame.upk restored from backup
    Restoring from backup completed successfully
  8. jrwalden
    jrwalden
    • member
    • 0 kudos
    This patch doesn't work for me. I'm using PatcherGUI v6.1. Other patches work just fine. When I select this patch and apply I get an error, "Error patching UPK!"
    1. SirDrD
      SirDrD
      • member
      • 4 kudos
      Can you tell me the error that occurred in PatcherGUI's log. You can get it by selecting tools in the menu, and select show debug log. Send me the results.

      If their is a problem installing, it is probably do to a conflict with another mod.
    2. jrwalden
      jrwalden
      • member
      • 0 kudos
      Yes. Here is the debug log:

      Writing backups to D:\Info\My Games\_Notes\X-Com Mods\PatcherGUI/Backup/1420758873
      XComGame.upk saved to backup dir
      Backup completed successfully

      Executing external PatchUPK program:
      "D:\Info\My Games\_Notes\X-Com Mods\PatcherGUI/Binaries/PatchUPK.exe" "D:\Info\My Games\_Notes\X-Com Mods\RandomizedSoldierAppearance.txt" "C:\Games\XCOM Enemy Within\XEW/XComGame/CookedPCConsole"

      PatchUPK
      Installing mod: Greater Randomized Soldier Appearance.
      Opening package ...
      Package file: C:\Games\XCOM Enemy Within\XEW/XComGame/CookedPCConsole/xcomgame.upk
      Package opened successfully!
      by SirDrD (Darrel Dumontier)

      Mod description:
      This mod will allow for as wide a range as possible of initial random solider appearances, while keeping a decent look for each soldier. This is to prevent all soldiers from looking the same, and to have each solider look like a unique individual.This mod was created mostly for Long War, but should be compatible with the base EW game. It is just a few simple changes but it increases the look and variety a lot, with some impressive looking soldiers.


      Alias added successfully: FractionChanceOfFemale
      Alias added successfully: FractionChanceOfChoosingAmongAllHairOptions
      Alias added successfully: PercentChanceOfBeard
      Alias added successfully: PercentChanceOfColoredHair
      Alias added successfully: RemoveSelectHelmetsFromRandomSelection
      Searching for object named XGCharacterGenerator.CreateTSoldier ...
      Object found!
      Alias added successfully: XGCharacterGenerator.CreateTSoldier.kSoldier.TAppearance.iHaircut
      Searching for specified data chunk ...
      Can't find specified data!
      Execution stopped at #11 command named [FIND_CODE].
      Restoring from backup in D:\Info\My Games\_Notes\X-Com Mods\PatcherGUI/Backup/1420758873
      XComGame.upk restored from backup dir
      Restoring from backup completed successfully
    3. SirDrD
      SirDrD
      • member
      • 4 kudos
      The problem is just as I guessed it would be. You probably installed another mod earlier that changes the gender ratio. This mod also changes the gender ratio, so it couldn't find the code. You can either uninstall the other mod or just remove the following lines from my mod file

      //**** Change Gender Ratio
      [FIND_CODE]
      0F 35 82 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 45 9A A7 2C 02 16 25 16 02 00 2C 02 01 00 26
      //kSoldier.kAppearance.iGender = ((Rand(2) == 0) ? 2 : 1)
      [MODDED_CODE]
      0F 35 82 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 45 9A A7 <!FractionChanceOfFemale> 16 25 16 02 00 2C 02 01 00 26
    4. jrwalden
      jrwalden
      • member
      • 0 kudos
      Thanks for the help. I will try that. Not aware of any mods I have that affect gender but will see if I can find the culprit and report back.
    5. Natham Maedhros
      Natham Maedhros
      • member
      • 10 kudos
      Kudos to you!

      I was having the same problem 'cause I've already isntalled a mod to change the female ratio but I cannot unistall it. Deleting those lines you mentioned fixed the issue.
  9. SpazmoJones
    SpazmoJones
    • member
    • 13 kudos
    Hey I found the problem and fixed it for you. Here's a version that works with LW beta 15:
    Save everything below this line to a plain text file (e.g. cleanseclonesLWb15.txt) and use PatcherGUI to install.
    ================================================================================================================
    MOD_NAME=Greater Randomized Soldier Appearance.
    UPK_FILE=XComGame.upk
    AUTHOR=SirDrD (Darrel Dumontier)
    // 17 Mar 2015 - Modified for LW beta 15 by eclipse666

    // The Initial template for soldier appearance changes was created by Drakous79 (http://wiki.tesnexus.com/index.php/Initial_soldier_appearance_-_XCOM:EU_2012)//
    DESCRIPTION=This mod will allow for as wide a range as possible of initial random solider appearances, while keeping a decent look for each soldier. This is to prevent all soldiers from looking the same, and to have each solider look like a unique individual.This mod was created mostly for Long War, but should be compatible with the base EW game. It is just a few simple changes but it increases the look and variety a lot, with some impressive looking soldiers.

    The following is a summary of the changes. Note that many of the values can be changed by changing values in the customization section. So if for example you do not want any soldiers with brightly colored hair, their is a place you can change that probability to zero. Here is a description of the changes.

    1) Over half of men will get a randomly generated beard. (The XCOM default had this set to 1/4. And with many of the beards being subtle, very few soliders ended up with distinguised beards.)
    2) The gender ratio was changed to 1/3 female. (This was done since there are more customization options availble for men. Not only do men have the beard option, but many of the female hair options were similar to each other.)
    3) Each race was given a greater range of possible standard hair colors.
    4) If a soldier does not have a beard their is a 20% chance that he/she will have a non-standard hair color for his/her race to represent their hair being dyed. (Beards were left out, since dyed beards looked too silly. Dyed eyebrows look a little silly as well, but it is less noticable, and it still looks good overall.)
    5) A greater range of haircuts was opened up to randomization, including bald.
    6) Their is approximatly a %20 chance of a soldier getting a random headgear choice. (The default list are any headgear where the eyes are not covered. Which headgear is available (if any) is easily customizable.)

    In long war their was a setting that allowed the player to set the headgear each soldier starts with. If that setting is used this mod should not overwrite it, and each soldier will start with that headgear.


    /******** Customization section ******/
    //**edit the decimal number after any %b or %i to change a percentage chance of something occuring.

    ALIAS=FractionChanceOfFemale: 2C <%b 3>
    // a 3 above means 1/3 will be female. a 2 is 1/2, a 4 is 1/4, etc.


    ALIAS=FractionChanceOfChoosingAmongAllHairOptions: 2C <%b 2>
    // Similar fraction rules to FractionChanceOfFemale.
    //By default this is set to 2 which means there is a 1/2 chance of Choosing amongst all configured hair options (hairstyles +configured headgear), and a 1/2 chance of only choosing amongst hair styles only. This comes to about a %20 chance of a headgear getting chosen.

    ALIAS=PercentChanceOfBeard: 2C <%b 65>
    //The percentage chance of a male getting a random beard. The default is 65%

    ALIAS=PercentChanceOfColoredHair: 2C <%b 20>
    //The percentage chance of some one without a beard of getting a non-standard hair color for his/her race. The default is 20%

    /**The following adjusts which helmet options are possible for random selection. It removes elements from an array that should not be included.
    So Uncomment the ones that you do not want included, and comment out the lines that you do want. Do not change the numbers or the order in this section.
    The interger value after any of the %b represents the value in the custimzation spinner subtract 1. So 0 = bald, and 40 =the Fedora. */
    ALIAS=RemoveSelectHelmetsFromRandomSelection:
    //40 00 <.Hairs> 2C <%b 40> 26 16 //Fedora
    40 00 <.Hairs> 2C <%b 39> 26 16//Gold Eye Plate w/Breather
    40 00 <.Hairs> 2C <%b 38> 26 16 //RoboCop
    40 00 <.Hairs> 2C <%b 37> 26 16//Red-eye Helmet
    40 00 <.Hairs> 2C <%b 36> 26 16//Sleek Round SciFi Helmet
    40 00 <.Hairs> 2C <%b 35> 26 16//Skull-Face Helmet
    40 00 <.Hairs> 2C <%b 34> 26 16// Hybrid sciFiHelemt
    40 00 <.Hairs> 2C <%b 33> 26 16 // Bugface SciFi Helmet
    40 00 <.Hairs> 2C <%b 32> 26 16//Blocky faceless helmet
    40 00 <.Hairs> 2C <%b 31> 26 16 //Sleek SciFi Helmet
    40 00 <.Hairs> 2C <%b 30> 26 16 //Gold eye SciFi Helmet
    40 00 <.Hairs> 2C <%b 29> 26 16 // Gold Plate Face Helmet
    40 00 <.Hairs> 2C <%b 28> 26 16 //Gold Plate w/Breather Helmet
    40 00 <.Hairs> 2C <%b 27> 26 16 //Stormtrooper helmet
    //40 00 <.Hairs> 2C <%b 26> 26 16//Beanie
    //40 00 <.Hairs> 2C <%b 25> 26 16// Ball cap. Backwards with Headset
    //40 00 <.Hairs> 2C <%b 24> 26 16//Ball cap, backwards
    //40 00 <.Hairs> 2C <%b 23> 26 16//Ball Cap
    40 00 <.Hairs> 2C <%b 22> 26 16//Beanie w/goggles & headset
    //40 00 <.Hairs> 2C <%b 21> 26 16 //Beret
    //40 00 <.Hairs> 2C <%b 20> 26 16 //Ball cap& headset
    //40 00 <.Hairs> 2C <%b 19> 26 16 //Kelvar Helmet
    //40 00 <.Hairs> 2C <%b 18> 26 16 //Beret and sunglasses
    40 00 <.Hairs> 2C <%b 17> 26 16 // motocycle helmet

    /********* END OF CUSTOMIZATION SECTION ***/



    OBJECT=XGCharacterGenerator.CreateTSoldier:AUTO

    ALIAS=kSoldier.TAppearance.iHaircut:
    35 <XGTacticalGameCoreNativeBase.TAppearance.iHaircut> <XGTacticalGameCoreNativeBase.TAppearance> 00 00 35 <XGTacticalGameCoreNativeBase.TSoldier.kAppearance> <XGTacticalGameCoreNativeBase.TSoldier> 00 01 00 <.kSoldier>


    //**** Change Gender Ratio
    [FIND_CODE]
    0F 35 82 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 45 9A A7 2C 02 16 25 16 02 00 2C 02 01 00 26
    //kSoldier.kAppearance.iGender = ((Rand(2) == 0) ? 2 : 1)
    [MODDED_CODE]
    0F 35 82 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 45 9A A7 <!FractionChanceOfFemale> 16 25 16 02 00 2C 02 01 00 26



    // *** Add helmets to the 'Hairs' array by setting bAllowHelmets=true (the last 4A to 27) in three GetContentIds calls bellow. ***

    // XComContentManager(class'Engine'.static.GetEngine().GetContentManager()).GetContentIdsForRace(6, byte(kSoldier.kAppearance.iRace), RaceHairs,, true)
    FIND_CODE=00 <.RaceHairs> 4A 4A 16
    [MODDED_CODE]
    00 <.RaceHairs> 4A 27 16


    // XComContentManager(class'Engine'.static.GetEngine().GetContentManager()).GetContentIdsForGender(6, byte(kSoldier.kAppearance.iGender), GenderHairs,, true)
    FIND_CODE=00 <.GenderHairs> 4A 4A 16
    [MODDED_CODE]
    00 <.GenderHairs> 4A 27 16


    // XComContentManager(class'Engine'.static.GetEngine().GetContentManager()).GetContentIdsForCharacter(6, 2, CharacterHairs,, true)
    FIND_CODE=00 <.CharacterHairs> 4A 4A 16
    [MODDED_CODE]
    00 <.CharacterHairs> 4A 27 16



    // *** Skip a loop clearing helmets from the 'Hairs' array. ***
    FIND_CODE=0F 00 <.Idx> 93 36 00 <.Hairs> 26 16 07
    [MODDED_CODE]
    0F 00 <.Idx> 93 36 00 <.Hairs> 26 16 06


    /***** Have the default code that picks random hair replaced by picking a random head. This means the random head will picked twice, with the first one discarded. This is an easy way to prevent the hair from being set at this point in the code, while keeping the script size the same. */
    [FIND_CODE]
    0F 35 80 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 10 A7 36 00 DD B9 00 00 16 00 DD B9 00 00

    [MODDED_CODE]
    0F 35 83 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 10 A7 36 00 E2 B9 00 00 16 00 E2 B9 00 00

    /* ****swap order of FacialHair call with that of hair color call. Hair color can depend on whether the soldier has a beard or not. */

    [FIND_CODE]
    0F 35 7F 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 1B F0 12 00 00 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 19 00 DC B9 00 00 09 00 49 5E 00 00 00 01 49 5E 00 00 16
    //kSoldier.kAppearance.iHairColor = ChooseHairColor(kSoldier.kAppearance, HairPalette.BaseOptions)

    0F 35 7E 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 45 9A 35 82 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 00 00 E7 B9 00 00 26 16 96 00 1B EE 12 00 00 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 35 92 0F 00 00 99 0F 00 00 00 00 00 E7 B9 00 00 36 19 2E CC 51 00 00 19 12 20 35 FE FF FF 0A 00 91 F9 FF FF 00 1C D4 FB FF FF 16 0A 00 93 F9 FF FF 00 1B 37 38 00 00 00 00 00 00 16 09 00 05 4F 00 00 00 01 05 4F 00 00 16 01 00 25
    //kSoldier.kAppearance.iFacialHair = ((kSoldier.kAppearance.iGender == 1) ? ChooseFacialHair(kSoldier.kAppearance, kSoldier.iCountry, XComContentManager(class'Engine'.static.GetEngine().GetContentManager()).FacialHairPresets.Length) : 0)

    [MODDED_CODE]
    0F 35 7E 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 45 9A 35 82 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 00 00 E7 B9 00 00 26 16 96 00 1B EE 12 00 00 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 35 92 0F 00 00 99 0F 00 00 00 00 00 E7 B9 00 00 36 19 2E CC 51 00 00 19 12 20 35 FE FF FF 0A 00 91 F9 FF FF 00 1C D4 FB FF FF 16 0A 00 93 F9 FF FF 00 1B 37 38 00 00 00 00 00 00 16 09 00 05 4F 00 00 00 01 05 4F 00 00 16 01 00 25
    //kSoldier.kAppearance.iFacialHair = ((kSoldier.kAppearance.iGender == 1) ? ChooseFacialHair(kSoldier.kAppearance, kSoldier.iCountry, XComContentManager(class'Engine'.static.GetEngine().GetContentManager()).FacialHairPresets.Length) : 0)

    0F 35 7F 0F 00 00 84 0F 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 1B F0 12 00 00 00 00 00 00 35 8E 0F 00 00 99 0F 00 00 00 01 00 E7 B9 00 00 19 00 DC B9 00 00 09 00 49 5E 00 00 00 01 49 5E 00 00 16
    //kSoldier.kAppearance.iHairColor = ChooseHairColor(kSoldier.kAppearance, HairPalette.BaseOptions)


    // *** Set Random Hair. Normal Hair will be more common, hats will be less common. ***/

    [BEFORE_CODE]
    //eclipse666 Changed below for LW beta 15

    //04 00 <.kSoldier>
    //return soldier
    //04 3A E8 B9 00 00
    //return Value

    //eclipse666 Changed below for LW beta 15
    04 00 E7 B9 00 00
    0B
    0B
    0B
    04 3A E8 B9 00 00

    [AFTER_CODE]

    /*** add bald (hair package -1) to the start of the hairs array at index 0 */
    39 00 <.Hairs> 2C 00 26 16
    0F 10 2C 00 00 <.Hairs> 1D <%i -1>

    <!RemoveSelectHelmetsFromRandomSelection>



    0F <!kSoldier.TAppearance.iHaircut >
    45 99 <!kSoldier.TAppearance.iHaircut > 25 16 2F 00
    <!kSoldier.TAppearance.iHaircut >31 00
    45 9B A7 <! FractionChanceOfChoosingAmongAllHairOptions> 16 2C 00 16 0E 00
    10 A7 2C <%b 17> 16 00 <.Hairs> 16 00
    10 A7 36 00 <.Hairs> 16 00 <.Hairs>

    //eclipse666 Changed below for LW beta 15
    //04 00 <.kSoldier>
    //return soldier
    //04 3A E8 B9 00 00
    //return Value

    //eclipse666 Changed below for LW beta 15
    04 00 E7 B9 00 00
    0B
    0B
    0B
    04 3A E8 B9 00 00


    OBJECT=XGCharacterGenerator.ChooseFacialHair:AUTO


    [REPLACEMENT_CODE]

    07 [@NoBeard] 98 A3 A7 2C <%b 100> 16 16 <!PercentChanceOfBeard> 16

    0F 00 <.iHairChoice> 92 A7 2C <%b 22> 16 26 16
    //iHairChoice = Rand(23)
    06 [@ReturnBeardValue]

    [#NoBeard]
    0F 00 <.iHairChoice> 25
    //iHairChoice = 0
    [#ReturnBeardValue]
    04 00 <.iHairChoice>
    //return iHairChoice

    04 3A <.ReturnValue>
    //return ReturnValue

    53
    //



    OBJECT=XGCharacterGenerator.ChooseHairColor:AUTO
    [REPLACEMENT_CODE]


    07 [@NormalHair] 82 98 35 <XGTacticalGameCoreNativeBase.TAppearance.iFacialHair> <XGTacticalGameCoreNativeBase.TAppearance> 00 00 48 <.kAppearance> 26 16 18 09 00 98 A3 A7 2C <%b 100> 16 16 <! PercentChanceOfColoredHair> 16 16
    07 [@Race0ColoredHair] 97 35 <XGTacticalGameCoreNativeBase.TAppearance.iRace> <XGTacticalGameCoreNativeBase.TAppearance> 00 00 48 <.kAppearance> 2C 00 16
    55 00 <.arrChoices> 03 00 2C <%b 0> 16
    55 00 <.arrChoices> 03 00 2C <%b 3> 16
    55 00 <.arrChoices> 03 00 2C <%b 4> 16
    55 00 <.arrChoices> 03 00 2C <%b 5> 16
    55 00 <.arrChoices> 03 00 2C <%b 6> 16
    55 00 <.arrChoices> 03 00 2C <%b 7> 16
    55 00 <.arrChoices> 03 00 2C <%b 8> 16
    55 00 <.arrChoices> 03 00 2C <%b 9> 16
    55 00 <.arrChoices> 03 00 2C <%b 10> 16
    55 00 <.arrChoices> 03 00 2C <%b 14> 16
    55 00 <.arrChoices> 03 00 2C <%b 15> 16
    55 00 <.arrChoices> 03 00 2C <%b 16> 16
    55 00 <.arrChoices> 03 00 2C <%b 17> 16
    55 00 <.arrChoices> 03 00 2C <%b 18> 16
    55 00 <.arrChoices> 03 00 2C <%b 19> 16
    55 00 <.arrChoices> 03 00 2C <%b 20> 16
    55 00 <.arrChoices> 03 00 2C <%b 21> 16
    55 00 <.arrChoices> 03 00 2C <%b 22> 16
    55 00 <.arrChoices> 03 00 2C <%b 23> 16
    0F 00 <.iHairChoice> 10 A7 36 00 <.arrChoices>16 00 <.arrChoices>
    06 [@ReturnHairColor]

    [#Race0ColoredHair]
    55 00 <.arrChoices> 03 00 2C <%b 16> 16
    55 00 <.arrChoices> 03 00 2C <%b 17> 16
    55 00 <.arrChoices> 03 00 2C <%b 18> 16
    55 00 <.arrChoices> 03 00 2C <%b 19> 16
    55 00 <.arrChoices> 03 00 2C <%b 20> 16
    55 00 <.arrChoices> 03 00 2C <%b 21> 16
    0F 00 <.iHairChoice> 10 A7 36 00 <.arrChoices>16 00 <.arrChoices>
    06 [@ReturnHairColor]

    [#NormalHair]
    07 [@Race0NormalHair] 97 35 <XGTacticalGameCoreNativeBase.TAppearance.iRace> <XGTacticalGameCoreNativeBase.TAppearance> 00 00 48 <.kAppearance> 2C 00 16
    55 00 <.arrChoices> 03 00 2C <%b 1> 16
    55 00 <.arrChoices> 03 00 2C <%b 2> 16
    55 00 <.arrChoices> 03 00 2C <%b 11> 16
    55 00 <.arrChoices> 03 00 2C <%b 12> 16
    55 00 <.arrChoices> 03 00 2C <%b 13> 16
    0F 00 <.iHairChoice> 10 A7 36 00 <.arrChoices>16 00 <.arrChoices>
    06 [@ReturnHairColor]
    [#Race0NormalHair]
    55 00 <.arrChoices> 03 00 2C <%b 0> 16
    55 00 <.arrChoices> 03 00 2C <%b 1> 16
    55 00 <.arrChoices> 03 00 2C <%b 2> 16
    55 00 <.arrChoices> 03 00 2C <%b 3> 16
    55 00 <.arrChoices> 03 00 2C <%b 4> 16
    55 00 <.arrChoices> 03 00 2C <%b 5> 16
    55 00 <.arrChoices> 03 00 2C <%b 6> 16
    55 00 <.arrChoices> 03 00 2C <%b 7> 16
    55 00 <.arrChoices> 03 00 2C <%b 8> 16
    55 00 <.arrChoices> 03 00 2C <%b 9> 16
    55 00 <.arrChoices> 03 00 2C <%b 10> 16
    55 00 <.arrChoices> 03 00 2C <%b 11> 16
    55 00 <.arrChoices> 03 00 2C <%b 12> 16
    55 00 <.arrChoices> 03 00 2C <%b 13> 16
    55 00 <.arrChoices> 03 00 2C <%b 14> 16
    55 00 <.arrChoices> 03 00 2C <%b 15> 16
    55 00 <.arrChoices> 03 00 2C <%b 22> 16
    55 00 <.arrChoices> 03 00 2C <%b 23> 16
    0F 00 <.iHairChoice> 10 A7 36 00 <.arrChoices>16 00 <.arrChoices>

    [#ReturnHairColor]

    04 00 <.iHairChoice>
    //return iHairChoice

    04 3A <.ReturnValue>
    //return ReturnValue

    53



    /* Special Thanks
    - wghost81 For PatcherGUI, and all the pioneering work in upk Hex editing, and longwar contributions
    - JohnnyLump for Creation of Longwar, my favorite mod/game to date.
    - Ameneri for UPK modder, long war contributions, and hex editing discoveries
    - Ellatan and XMarksTheSpot for long war contributions
    - Drakous79 and others for initial template of this mod, and discoveries in editing soldier appearance
    - DubiousIntent for the wiki
    - Elliot van Uytfanghe for UE explorer
    - All others we contributed too the upk hex editing community.
    */



    1. Natham Maedhros
      Natham Maedhros
      • member
      • 10 kudos
      Kudos to you!

      Thanks for fixing the file to work wiht LW.
  10. Natham Maedhros
    Natham Maedhros
    • member
    • 10 kudos
    Endorsed!

    Great work! I just love it.