marender Posted September 6, 2023 Share Posted September 6, 2023 (edited) --- Apologies for the double post, but I'm new here and this forum seems to have more eyes than Mod Requests --- For my own satisfaction and, I am attempting an EU+DLC playthrough by recreating the characters from the Tutorial mission as a revised kind of canon beginning, assuming medical care arrived just in time and they all got patched up! :tongue: In the games log files [Documents\My Games\XCOM - Enemy Unknown\XComGame\Logs] I can find the Race, Head, Hair, and Voice that the game loads for each of the characters (names are random but their appearances are always the same). But I cannot tell what skin colors and hair colors have been selected. I can make guesses, but there has to be a way to find for sure. I cannot find the .upk file that dictates how the game forces all of the Tutorial character appearance characteristics. As another option, from this site I have learned to decompress and DeserializeAll the Startup.upk file, where I have found the UnitPalettes detailing the skin and hair colors, thinking I could make changes to them to verify the settings are what I think they are, but I do not know how to edit them by developing a mod for PatcherGUI. Edited September 6, 2023 by marender Link to comment Share on other sites More sharing options...
marender Posted September 10, 2023 Author Share Posted September 10, 2023 I've found the appearance settings for the Tutorial soldiers. These will be my canon original four for EU now. :) The function is in XStrategyGame.upk > XGFacility_Barracks function TUTORIALLoadSoldiers(XGShip_Dropship kSkyranger){ local XGStrategySoldier kSoldier; kSoldier = Spawn(Class'XGStrategySoldier'); kSoldier.m_kSoldier = m_kCharGen.CreateTSoldier(1, 0, 1); kSoldier.m_kChar = TACTICAL().GetTCharacter(2); kSoldier.m_kSoldier.kAppearance.iRace = 1; kSoldier.m_kSoldier.kAppearance.iHead = 22; kSoldier.m_kSoldier.kAppearance.iFacialHair = -1; kSoldier.m_kSoldier.kAppearance.iHaircut = 0; kSoldier.m_kSoldier.kAppearance.iHairColor = 11; kSoldier.m_kSoldier.kAppearance.iSkinColor = 1; kSoldier.m_kSoldier.kAppearance.iGender = 1; kSoldier.m_kSoldier.kAppearance.iFlag = 0; kSoldier.m_kSoldier.kAppearance.iVoice = 2; STORAGE().AutoEquip(kSoldier); kSkyranger.m_arrSoldiers.AddItem(kSoldier; kSoldier.SetHQLocation(1, true); AddNewSoldier(kSoldier); kSoldier = Spawn(Class'XGStrategySoldier'); kSoldier.m_kSoldier = m_kCharGen.CreateTSoldier(1, 20, 3); kSoldier.m_kChar = TACTICAL().GetTCharacter(2); kSoldier.m_kSoldier.kAppearance.iRace = 3; kSoldier.m_kSoldier.kAppearance.iHead = 36; kSoldier.m_kSoldier.kAppearance.iFacialHair = 19; kSoldier.m_kSoldier.kAppearance.iHaircut = 20; kSoldier.m_kSoldier.kAppearance.iHairColor = 11; kSoldier.m_kSoldier.kAppearance.iSkinColor = 4; kSoldier.m_kSoldier.kAppearance.iGender = 1; kSoldier.m_kSoldier.kAppearance.iFlag = 20; kSoldier.m_kSoldier.kAppearance.iVoice = 1; STORAGE().AutoEquip(kSoldier); kSkyranger.m_arrSoldiers.AddItem(kSoldier; kSoldier.SetHQLocation(1, true); AddNewSoldier(kSoldier); kSoldier = Spawn(Class'XGStrategySoldier'); kSoldier.m_kSoldier = m_kCharGen.CreateTSoldier(1, 1, 0); kSoldier.m_kChar = TACTICAL().GetTCharacter(2); kSoldier.m_kSoldier.kAppearance.iRace = 0; kSoldier.m_kSoldier.kAppearance.iHead = 15; kSoldier.m_kSoldier.kAppearance.iFacialHair = 7; kSoldier.m_kSoldier.kAppearance.iHaircut = 18; kSoldier.m_kSoldier.kAppearance.iHairColor = 1; kSoldier.m_kSoldier.kAppearance.iSkinColor = 1; kSoldier.m_kSoldier.kAppearance.iGender = 1; kSoldier.m_kSoldier.kAppearance.iFlag = 1; kSoldier.m_kSoldier.kAppearance.iVoice = 3; STORAGE().AutoEquip(kSoldier); kSkyranger.m_arrSoldiers.AddItem(kSoldier; kSoldier.SetHQLocation(1, true); AddNewSoldier(kSoldier); kSoldier = Spawn(Class'XGStrategySoldier'); kSoldier.m_kSoldier = m_kCharGen.CreateTSoldier(2, 6, 2); kSoldier.m_kChar = TACTICAL().GetTCharacter(2); kSoldier.m_kSoldier.kAppearance.iRace = 2; kSoldier.m_kSoldier.kAppearance.iHead = 60; kSoldier.m_kSoldier.kAppearance.iFacialHair = -1; kSoldier.m_kSoldier.kAppearance.iHaircut = 4; kSoldier.m_kSoldier.kAppearance.iHairColor = 11; kSoldier.m_kSoldier.kAppearance.iSkinColor = 3; kSoldier.m_kSoldier.kAppearance.iGender = 2; kSoldier.m_kSoldier.kAppearance.iFlag = 6; kSoldier.m_kSoldier.kAppearance.iVoice = 12; STORAGE().AutoEquip(kSoldier); kSkyranger.m_arrSoldiers.AddItem(kSoldier; kSoldier.SetHQLocation(1, true); AddNewSoldier(kSoldier); AddNewSoldiers(11); //return; } Link to comment Share on other sites More sharing options...
Recommended Posts