Jump to content

Drakous79

Supporter
  • Posts

    765
  • Joined

  • Last visited

Everything posted by Drakous79

  1. I'd like to know it too. Right now it seems like more customers want to get the same product, but nobody knows who is going to get it :smile: It is not possible to check on daily basis, which mod is changing the same ini value and update own mod's description. Considering manual edits the last entry wins. In Steam Workshop it may be the first mod changing the value wins. Edit: We can do test mods and experiment.
  2. Have you tried running ModBuddy or SDK binary as admin?
  3. Please correct me, if I'm wrong, but "the last one wins". // Contents of some ini file [Section] Key = 1 [Section] Key = 2Result will be Key = 2. It's like in the code. If you set Key to 1 and on the next line to 2, it will be equal to 2 in the end. --- +-.! marks are great to keep configuration files tidy. But sometimes there is no exact match, because some other mod may add the very same key (the last one wins), or new key needs to be added to specific place in an existing array. // original [XComGame.XComGameState_UFO] MaxHuntingDistance=0.2 // mod 1 just adds new key [XComGame.XComGameState_UFO] MaxHuntingDistance=0.4 // mod 2 removes the original (exact match) and adds new key [XComGame.XComGameState_UFO] -MaxHuntingDistance=0.2 +MaxHuntingDistance=0.6 // But if 0.6 is added to a place, where 0.2 was, result of such ini should be MaxHuntingDistance=0.4. // original [XComGame.X2SoldierClass_DefaultClasses] SoldierClasses="Rookie" SoldierClasses="Ranger" SoldierClasses="Sharpshooter" SoldierClasses="Grenadier" SoldierClasses="Specialist" SoldierClasses="PsiOperative" SoldierClasses="MP_Ranger" SoldierClasses="MP_Sharpshooter" SoldierClasses="MP_Grenadier" SoldierClasses="MP_Specialist" SoldierClasses="MP_PsiOperative" // mod 1 - Would ClearArray trick performed by IniLocPatcher (XCOM EU - Logs\EMS\) work? // This may not be the best example, because most of exposed arrays in XCOM 2 inis are indexed. [XComGame.X2SoldierClass_DefaultClasses] !SoldierClasses=ClearArray // < clear SoldierClasses="Rookie" SoldierClasses="Ranger" SoldierClasses="Sharpshooter" SoldierClasses="Grenadier" SoldierClasses="Specialist" SoldierClasses="PsiOperative" SoldierClasses="Wizard" // < add SoldierClasses="MP_Ranger" SoldierClasses="MP_Sharpshooter" SoldierClasses="MP_Grenadier" SoldierClasses="MP_Specialist" SoldierClasses="MP_PsiOperative"
  4. Hi, have you tried what is suggested in [bUG] [sOLVED] "Missing components" error while attempting to start ModBuddy thread?
  5. This one seems to be coder's job. Option 1 - hard - new color button for hats new button in customization interface menua variable to store the color option for every soldiernew function to preview hat's color in customization interfacea change of function, where is the secondary color tied to hatsand whatever comes up Option 2 - easy - the primary color is applied to hats instead of the secondary a change of function, where is the secondary color tied to hats You don't have to be seasoned programmer to do that, but it can take some time to understand how XCOM 2 code works, what is where doing what and how to change it. I can see the desire for the option, because I'd like to have it too. Hopefully you or someone else can make the mod :)
  6. Good idea. It may be doable :) Have you thought about reusable weapon attachments along with limited quantity? If for example legendary scope would drop only once per game, an option to mount it to another weapon is fine. Like in reality, plug&shoot. No need to buy new gear, if it's compatible.
  7. Hello, considering Skyranger, you can experiment with steamapps\common\XCOM 2\XComGame\Config\DefaultGameBoard.ini and see, what works. [XComGame.XComGameState_Skyranger] Acceleration=(X=0.075, Y=0.075, Z=10.0) FlightHeight=5.0 InFlightTimeScale=1800 MaxSpeedFlying=0.03 MaxSpeedVertical=3.0 RotationSpeed=2.0 MaxLiftOffLandPitch=30.0 MaxFlightPitch=-15.0 MaxFlightTurnRoll=45.0 MaxTurbulenceRoll=0.0 LandingRadius=0.0 --- You can browse Steam Workshop, if there's a mod doing what you want. I recall seeing one, that removed some advantages of XCOM soldiers.
  8. Well done :) One more hour of download and I should be able to test it!
  9. Oh :( That's bad. New props like hats -> uninstalled -> fall back to default look Camera angle -> uninstalled -> fall back to extended Camera class I can see the point of missing variables and classes, but there are cases, where invalidating the save is too much.
  10. Wonderful :smile: "-log" switch used to open an additional window with log output, that can be ALT+TAB to without closing the game and checking Launch.log. What is written in the log could be set in Base or DefaultEngine.ini by commenting a line with semicolon. My XCOM 2 is still downloading :smile:
  11. I don't, but you can do it yourself. You can use PatcherGUI from UPKUtils to enable ini loading. The option is in Tools submenu of the util. Next edit DefaultGameCore.ini: ; Funding Multiplier by Difficulty Level (Easy,Normal,Classic,Impossible) FundingBalance=1.5 FundingBalance=1 FundingBalance=1 FundingBalance=1 ; Country Funding Amounts FundingAmounts=180 ;USA FundingAmounts=150 ;Russia FundingAmounts=100 ;China FundingAmounts=100 ;UK MECHTOID_MELD=5 HFLOATER_MELD=5 and DefaultGameData.ini: [XComGame.XComMeldContainerActor] m_iMeldAwardedPerContainer=10 to your liking. Those files are in Steam\steamapps\common\XCom-Enemy-Unknown\XEW\XComGame\Config\ folder uder Windows.
  12. Hi chris920965, glad it worked for you :) I failed to notice, that not everyone is able to type *.* to see all files to select from. --- Fredybash, if you ever read this, the language is set in Steam application. Go to Library, right click on XCOM: Enemy Uknown and select Properties. Next there will be Language tab, where can be the language changed.
  13. I was like you, when I started with XCOM, no clue. You can do simple edits directly in UE Explorer. Always backup files you are going to change :smile: If you don't, you would have to verify game's cache in Steam to get unmodified files back. Try to open XComStrategyGame.upk. When you open the file, you will see 3 tabs in the left pane. The most interesting is Objects tab. It contains: Content - embedded packages in the fileClasses - scriptsAt the bottom of the left pane is filter input field. Type XGStrategyAI in it. It will filter just the class you typed. You can use just part of the class' name. Expand its tree by clicking on + sign. Then go to Functions and find GetNumAbductionSites. Now you can right click on it in the left pane and select View tokens. (000/000) [04 2C 03] R(3/3) -> ICB(2/2) return 3 04 // return 2C // 1 byte integer 03 // 3 Right click on the function again and select View buffer. Locate 04 2C 03 and right click on 03 and select Edit cell. Type 01 or 02. Then CTRL + S, CTRL + D will save changes and renew the buffer. Close the buffer view and check the change you just made. Close XComStrategyGame.upk by clicking on X at the top right corner, just above Save button. Check in the game, if you get the same number of abduction sites you've just entered. If you don't close the file in UE Explorer, the game will crash. Also if you increase a width of the left pane in UE Explorer, there will be Tools. If you click on an arrow next to it, you can choose Find / Find in Classes. Try to search for AbductionSites. This can help to find places of interest and uncover game's mechanics. --- Edit: How to make a mod of it with help of UPKUtils. At the top of the left pane is another input field, that contains name and path of an object selected below. You can use HexToPseudoCode util to create a mod file. Copy XComStrategyGame.upk to HexToPseudoCode folder, or HexToPseudoCode to a place, where your unpacked upks are. Run cmd, command line. Type: HexTopSeudoCode XComStrategyGame.upk XGStrategyAI.GetNumAbductionSites > d:\Pseudo_XGStrategyAI.GetNumAbductionSites.txtand you'll get mod file: //This script was generated by HexToPseudoCode decompiler for use with PatchUPK/PatcherGUI tool UPK_FILE = XComStrategyGame.upk OBJECT = XGStrategyAI.GetNumAbductionSites : AUTO [REPLACEMENT_CODE] 04 2C 03 04 3A <.ReturnValue> 53 to use with PatcherGUI. Check out PatchUPK_Readme.txt to learn about all features and how to use the util.
  14. XCOM Enemy Unknown and Enemy Within isn't easy to mod. You can rewrite bytecode (hex) to change how the game works. For example add XCOM perks to aliens. It is straightforward way, but with limits like no new functions, variables and so on. Requires a knowledge of bytecode tokens, how to connect them, how things work. Or you can write new code with help of Unreal Development Kit (UDK), which is more friendly and has allmost no limits. Requires a creation of stub script classes so new code compiles. New scripts must be hooked to the game, with mutators or DynamicLoadObject call (not sure we tested this yet). Comparison: MyVarible = 7; // in code // or 0F 00 <.MyVariable> 2C <%b32> // in bytecode using PatcherGUI pseudo code feature // where 0F // = 00 // Local variable <.MyVariable> // 4 bytes in this case 2C // 1 byte integer follows <%b32> // writes 20, as it is 32 in hexadecimal Another option is to try Long War mod, which has alien perks implemented. Or you can wait for XCOM 2 and try its shiny SDK. --- If you want to learn, there is a lot of reading involved. You can begin with Start here - XCOM Nexus Wiki article. It has links to what's needed to know. Check out Modding Tools. Definitely get UE Explorer, so you can view code and contents of uncompressed UPK files. There is view tokens feature, that lets you see code and bytecode together. Disassembled tokens view can help you understad how bytecode works. UPK files can be uncompressed with UPKUtils - DecompressLZO. One of these great tools is HexToPseudoCode, that may be used to create mod files to patch. It really speeds up mod creation process. It is absolute minimum, so you can find what you're looking for. When you find it, you will have to learn how to change it. Search the forum, many things were already done. Adding Additional Perks to Aliens Adding Perks to Aliens Combined mod (see the first spoiler) There are many resources you can use to understand. XCOM:EU Perks Hex editing UPK files Basic Guide to installing mods How to DIY common mod solutions (PatchUPK mod file example: How to customize Zhang) --- The most relevant files considering scripts are XComGame (tactical stuff and more) and XComStrategyGame (strategy stuff). But watch in what folder they are, becuse on it depends if you're modding Enemy Unknown or Enemy Within. My paths are: EU - Steam\steamapps\common\XCom-Enemy-Unknown\XComGame\CookedPCConsole\EW - Steam\steamapps\common\XCom-Enemy-Unknown\XEW\XComGame\CookedPCConsole\ That'd be all from me :smile: Hope it helped. Edit: Typos.
  15. Oh my god :) As XCOM EU/EW is hard to mod in terms of how to do it, XCOM 2 may be hard to mod in terms of what to mod, when there is so much stuff. Cydonia or bust!
  16. Hello, you can try these links: http://forums.nexusmods.com/index.php?/topic/2636579-giving-aliens-xcom-perks-ew/ http://forums.nexusmods.com/index.php?/topic/1062431-adding-additional-perks-to-aliens/ http://forums.nexusmods.com/index.php?/topic/982441-adding-perks-to-aliens/
  17. Made one little connection. At the end of material instance constant (MIC) are 16 byte blocks followed by 8 bytes. It is GUID (or hash) followed by parameter's name from NameTable. All these blocks together could be used to identify the correct spot in RefShaderCache-PC-D3D-SM3 (true). // Similar data like static switches below are at offset 0xAB3CD0E of RefShaderCache-PC-D3D-SM3.upk, // but with different hex for names. // EW Soldier_FemaleKevlar_SF.upk, CHH_Lv1MedMale_MOD.Materials.MInst_Lv1MedMale1 // This MIC has parent material GEN_MaterialParents.Master_Materials.CHH_Soldiers <None> 00 00 00 00 00 00 00 00 01 00 00 00 // 1 entry follows 7E E8 F6 6F 84 7A 2D 4D BA E6 58 F0 31 71 13 84 // GUID in RefShaderCache-PC-D3D-SM3; MIC 01 00 00 00 // 1 entry follows 06 00 00 00 // 6 entries (or textures) follow 87 FF FF FF // ImportTable; Texture2D'GEN_MaterialParents.Textures.Default_Normal' C5 03 00 00 // ExportTable; Texture2D'GEN_MaterialParents.Textures.Default_Spec' 88 FF FF FF // ImportTable; Texture2D'GEN_MaterialParents.Textures.Default_Diff' AC 03 00 00 // ExportTable; Texture2D'CHH_Lv1MedMale_MOD.Textures.Lv1MedMale_NRM' AD 03 00 00 // ExportTable; Texture2D'CHH_Lv1MedMale_MOD.Textures.Lv1MedMale_SPC AB 03 00 00 // ExportTable; Texture2D'CHH_Lv1MedMale_MOD.Textures.Lv1MedMale_DIF' 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 // 3 entries follow 00 00 00 00 01 00 00 00 00 00 80 3F 00 00 80 3F // LinearColor? 00 00 00 00 02 00 00 00 00 00 80 3F 00 00 80 3F // LinearColor? 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 80 3F // LinearColor? 86 C2 B5 00 // Unknown 16 0C C4 39 3E 29 7F 47 9D EF 6C E1 AE 45 44 10 // GUID in RefShaderCache-PC-D3D-SM3; the same as in parent material 04 00 00 00 // int StaticSwitchParameterList; 4 items 1F 05 00 00 00 00 00 00 // NameTable; parameter name "Reflect"; MaterialExpressionStaticSwitchParameter_15 00 00 00 00 // bool Value; false 00 00 00 00 // bool bOverride; false 74 DD D6 54 97 9A 1B 42 B2 E9 D7 EF AA 4F 79 87 // Expression GUID in parent material 01 00 00 00 00 00 00 00 // NameTable; parameter name "2 Color Tinted?"; MaterialExpressionStaticSwitchParameter_2 01 00 00 00 // bool Value; true 01 00 00 00 // bool bOverride; true E0 BA 1D E9 4C 52 BC 47 B7 EE DB 43 7F 17 21 AA // Expression GUID in parent material 33 06 00 00 00 00 00 00 // NameTable; parameter name "Tinted?"; MaterialExpressionStaticSwitchParameter_3 00 00 00 00 // bool Value; false 00 00 00 00 // bool bOverride; false AD DD 25 F2 51 B4 BA 4E BA A5 57 A5 A5 39 2D B6 // Expression GUID in parent material 5F 06 00 00 00 00 00 00 // NameTable; parameter name "Use Cube?"; MaterialExpressionStaticSwitchParameter_4 00 00 00 00 // bool Value; false 00 00 00 00 // bool bOverride; false B3 B9 CE FD 56 9F 81 42 AB BD 6D E7 66 86 CF 86 // Expression GUID in parent material 00 00 00 00 00 00 00 00 00 00 00 00 Downside is the cache has different NameTable values. Must look for free hex editor with wild card search support. Edit: MIC (MInst_Flags) of CHH_Flags ends with <None>, no additional data. May explain, why is this EU material working in EW. And NameTable entries involvment explains, why copy pasting EU's RefShaderCache didn't work. EU or UDK created RefShaderCache entry would have to be tweaked for EW's RefShaderCache NameTable. Might be easier with UDK and pseudo code - add name entry, patch data. Updating names is quite a hassle. When I've ported female skeletal mesh from EU to EW, 109 bone names and 2 material references had to be updated. Mod "DEV - Fix the girl" summary: the 1st try - an abomination, the 2nd try - a monster, the 3rd try - the monster with the correct texture. But there is covert ops model in the package :smile:
  18. Thank you. I'll continue analyzing caches and comparing them with UDK creations to understand the process.
  19. Agreed tracktwo. Can't wait to try XCOM 2 SDK. From what I read on the internet, XCOM 2 runs on modified Unreal Engine 3.5, so I am very curious how it handles materials in mods, how and if are shader cache files used and updated. I've tested new stand alone package with new model, material and textures year and half ago and everything I tried failed. New material never compiled. I'd like to know, how to make it to compile, or at least link it to some existing material or an entry in cache files. New packages are fine and easier to create, but sometimes it is feasible to patch small changes here and there. Your advances with UI and flash + XCOM 2 and its overcustomization = me thinking about creating new XCOM 2 like customization UI for EW, but I don't have enough knowledge to do it the right way. I remember your success with sound, that was fantastic. Have you had to patch sound file's footer with custom data to make it work? I remember something like that, or with licensee numbers. As a coder you can see patterns, where I see just bytes. Yes, byte view mode :smile: Back on mats. In my opinion new material should compile upon startup and update the shader cache file or link self to it somehow. There are mods for other UE3 games and they work with new mats. Going to take EU armor model and change its licensee number to EW now. Edit: Not working, compile error.
  20. Or you could color the alien, like it happens when an unit is in a blast radius of some explosive stuff (temporary material change).
  21. I'm on Windows 7 and 8.1 so not much XP with 10. Maybe you could write what mod is causing you troubles. I encountered such behavior with TexMod. In such case I renamed game's executable to something like XComEWReal.exe and TexMod's executable to XComEW.exe. Than it won't loop the launcher.
  22. I've compared DLC_PackIn, DLC_Day060 and CookedPCConsole shader cache files. All three have 1563 names in NameTable. DLC_PackIn added 3 armor decos, 3 hemets and 1 hair to the game. It doesn't need 1563 parameter names in shader cache, unless its cache overrides the one in CookedPCConsole. This is not the way to go.
  23. Thank you Zyx, will do my best. LiQuiD911 did great job wonders with maps, and pieces of his research are helping me to push it little further. Though I am not a coder myself, I like to poke things and watch what happens :smile: Yesterday I managed to separate female's armor texture from male's. Under normal conditions males and females in EW share the same texture. So I patched new image data, linked ChartexturesEU.tfc and nothing. Females had male texture. Next I changed names of DIF, NRM and SPC texture. Males had female texture. It turned out, that names of DIF, NRM, SPC texture AND a material instance constant have to be changed. Enclosing mod file, that demonstrates the change. It patches female's kevlar diffuse texture with normal, so the change is clearly seen. I still haven't verified, if mip maps stored in the UPK need correct bulk data offset or not. You know, 4 bytes pointing to UPK offset of the next byte. I saw violet armor with zoomed out camera, but it could be just higher res mip. My plan is to create one colored (red and yellow) lower res mips and test, if they can be seen with incorrect UPK offsets. If not, then I'll correct offsets and re-check. --- On shader's field not much changed. I've done quick and dirty job and patched EU serialized data at the end of EW file with zero results. I may have overlooked something. Gonna install UDK today.
  24. One more observation: in EU, DLCs had their own RefShaderCache-PC-D3D-SM3.upk.
×
×
  • Create New...