Drakous79 Posted October 7, 2014 Share Posted October 7, 2014 (edited) I've always wondered, if single player mods have any impact on multiplayer. We did few tests with wghost81 at the end of Juanuary 2014. Today I found notes about it. All tests were done with enabled phone home. Case 1 - modified UPK Test scenario for EU and EW:Drakous79 - modded XComGame.upk (delays for hunker dowwn and overwatch)wghost81 - vanillaResult:Accepting wghost81's invite resulted in rotating Vigilo Confido logo.The match didn't start.Countermeasures taken on Drakous79's side:Updated XComGame.upk hash - did not workDisabled all hashes - did not work But we found something interesting in logs: PendingLevel received: HandshakeChallenge PendingLevel received: HandshakeComplete PendingLevel received: Challenge DevNet: Received: NMT_Challenge: Package hashes don't match, closing connection---So I reverted to vanilla, we both installed the same mod and we could play. Test scenario:Both players the same mod (XCOM Camera Tweaks).Result:The game started with mods applied. Haven't dig too much into this, but "Package hashes don't match, closing connection" string is saved as unicode text in XComEW.exe. I assume all files accompanied with *.uncompressed_size are affected by hash check. Also in Engine.AccessControl is this code: if(NotEqual_InterfaceInterface(OnlineSub.GameInterface, (none))) { GameSettings = OnlineSub.GameInterface.GetGameSettings('None'); } if(GameSettings != none) { bSecure = GameSettings.bAntiCheatProtected; } But I have no idea, how AntiCheatProtection works. Case 2 - modified INI This one went smoothly. I have enabled loose ini files loading and changed Kevlar iHPBonus=10 in DefaultGameCore.ini. +10 bonus was applied to both players' units wearing kevlar armor, but only when I hosted (created) the game. So ini files are always taken from match's host. ConclusionSteam in offline mode disables Ranked and Quick match, Leaderboards and View Invites buttons in multiplayer menu. Only Custom Match and Edit Squad buttons are available.Disabled phone home prevents downloading of XComMPGame.ini into EMS folder after clicking Multiplayer button in the game. Haven't tested this one any further.Modified config ini files are always taken from match's host. In my opinion this could be used to do some really funny matches considering units with insanely high health.Modified upk files formerly accompanied with *.uncompressed_size are affected by package hash check and a match won't start if players don't have the same files. Anybody wishing to play multiplayer ranked matches should do so with vanilla installation. Also mod authors may place a note about it into readme.Modified textures (TexMod, TextureFileCache) may have no impact on multiplayer.Modified sounds may have no impact on multiplayer. Edited October 8, 2014 by Drakous79 Link to comment Share on other sites More sharing options...
amanasleep Posted October 7, 2014 Share Posted October 7, 2014 This matched up with my experience as well. Were anyone to create MP oriented modding I would be interested. Link to comment Share on other sites More sharing options...
dubiousintent Posted October 8, 2014 Share Posted October 8, 2014 (edited) Created wiki article "Multiplayer and mods" from this thread. Thanks for publishing. Two questions: * EMS folder? Where/which one is that? * "TechtureFileCache"? Is that accurate or should it be "TextureFileCache"? Questions for future testing: * If all players have the same modded UPK file and hash checking disabled? * If "*.uncompressed_size" file were updated to match a modded UPK file on both ends? * Exactly what files get copied down from the Firaxis servers by phone home? -Dubious- Edited October 8, 2014 by dubiousintent Link to comment Share on other sites More sharing options...
Drakous79 Posted October 8, 2014 Author Share Posted October 8, 2014 (edited) Thanks Dubious :smile: It is the folder in Logs:Documents\My Games\XCOM - Enemy Unknown\XComGame\Logs\EMS\Documents\My Games\XCOM - Enemy Within\XComGame\Logs\EMS\TextureFileCache it is, corrected the typo. If all players have the same modded UPK file and hash checking disabled The match will start, because all players have the same file.EU - players must update hash of that file or have hash checking disabled, to even start the gameEW - doesn't matter if hash checking is enabled or not If "*.uncompressed_size" file were updated to match a modded UPK file on both ends? Both ends' uncompressed_size files should match their files, so they can start the game. And if both players have the same uncompressed_size file, they should have the same upk and the match will start. I think the hash may be computed by the executable ignoring uncompressed_size files. For sure it ignores hashes stored stored in self. Exactly what files get copied down from the Firaxis servers by phone home? http://wiki.tesnexus.com/index.php/Class:_IniLocPatcher_-_XCOM:EU_2012#Details_-_What_and_Where Edited October 8, 2014 by Drakous79 Link to comment Share on other sites More sharing options...
dubiousintent Posted October 9, 2014 Share Posted October 9, 2014 Updated the article. Thanks. -Dubious- Link to comment Share on other sites More sharing options...
dreadylein Posted October 12, 2014 Share Posted October 12, 2014 Patching the Checks should be quite trivial, but i dont see any benefit in it. Its quiet likely desyncs would happen, we dont realy know what exactly gets transfered between the clients. Or do i miss a benefit somewhere ? Link to comment Share on other sites More sharing options...
Krazyguy75 Posted October 12, 2014 Share Posted October 12, 2014 Patching the Checks should be quite trivial, but i dont see any benefit in it. Its quiet likely desyncs would happen, we dont realy know what exactly gets transfered between the clients. Or do i miss a benefit somewhere ? I don't think we're really talking about doing that, we're just discussing what needs to be modded on both sides in order to mod multiplayer. The only advantage that desyncing the two players would have is that it would allow cheats. Though we're already in dodgy territory with the whole "host's inis determine client stats", because you could say decide to give Sectoids outrageous stats and build an all sectoid team, whereas your opponent would rarely have enough sectoids to counter this threat. Link to comment Share on other sites More sharing options...
Recommended Posts