Jump to content

An impact of single player mods on multiplayer


Drakous79

Recommended Posts

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 - vanilla

Result:

  • 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 work
  • Disabled 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.

 

Conclusion

  • Steam 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 by Drakous79
Link to comment
Share on other sites

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 by dubiousintent
Link to comment
Share on other sites

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 game
  • EW - 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 by Drakous79
Link to comment
Share on other sites

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...