Author Topic: [Guide] Bypassing mod restrictions in multiplayer  (Read 557 times)

0 Members and 1 Guest are viewing this topic.

Not Yet Rated!

Offline Endymion

  • Modder
  • Full Member
  • *
  • Topic Author
  • Posts: 106
  • Country: aq
  • Karma: +9/-0
    • View Profile
    • Awards
  • Time Zone: ?
[Guide] Bypassing mod restrictions in multiplayer
« on: 10 September 2024, 21:19:45 »
How's it going, modding enthusiasts!
In this guide I will detail how to use mods in multiplayer in a way that doesn't require players to have your mod.
As you know, there have been certain restrictions put in place regarding mod usage, which I believe just put a damper on creativity and the fun of it.
There's a variety of ways to bypass said restrictions, and in this guide I'll describe a couple, which I believe are the easiest & most convenient.
Also made a video version of this guide

Approach #1
The first approach involves using Cheat Engine and its code editing features. I'm going to assume you already have some familiarity with the subject.

Don't forget to open TQ's process and let's start by opening Memory Viewer, clicking the View Tab -> Enumerate DLLs and Symbols.
This will display a list of the .dll libraries and functions therein that are used by Titan Quest.
Spoiler for Hiden:

Type "CleanseDatabase" in the search bar and it will locate the function we would be interested in.
Spoiler for Hiden:

The way it works - when you run a mod, the game loads up its database. After you return to the menu it gets removed.
And this is the very function that's responsible for it.
Spoiler for Hiden:

So let's go ahead and make the game skip this function all together, turn je into jmp.
Spoiler for Hiden:

And that is it! This allows you to load your mod and get back to the menu with the mod still being loaded. You can now make an Assembly script editing this conditional jump. You can find how to do it in CE's own tutorial or dozen other detailed guides.

To summarize: enable your script, load a mod, go back to the menu and you're good to go!

I've also made a cheat table (a file for Cheat Engine with the scripts ready to be used) for it so you don't have to, but more on that in the end.

One last thing, if you have a bounce mod - you can just remove the bounce map to make it load the default map, to make the mod loading process faster for this approach (you can locate your mods in either ...User\Documents\My Games\Titan Quest - Immortal Throne\custommaps or for Steam Workshop ...Steam\steamapps\workshop\content\475150\).

Approach #2
Now, the second approach is going to be a bit more labor-intensive but it has its perks!
We're going to build our mod into the game database so you don't even have to launch it every time (what's known as a hardmod). Useful if you're not going to be making changes to your mod in the near future.

This approach requires that you have the source files for your mod set up in Art Manager. So either build your own or extract them from the desired mod.

Make sure you have your built mod ready.

The first step, we're going to copy the game database (... TItan Quest Anniversary Edition\Database) over to our built mod database folder (...User\Documents\My Games\Titan Quest - Immortal Throne\custommaps\mod\database).
Spoiler for Hiden:

We'll need to rename the game database to our mod's name to trick Art Manager into thinking that this is our mod's .arz file.
Spoiler for Hiden:

Back to Art Manager, let's build the mod again (now it's very important that you use this option here, otherwise it will start deleting database's contents. Right click to open the context menu).
Spoiler for Hiden:

Now we've got our database ready but there is an issue of compatibility. The game is going to check what's inside our database to make sure there's no funny business.

For the next step we're going to need any hex editor, like HxD.
Open both the original and our modified database and scroll all the way down.
These 16 symbols at the very end act like a checksum, they verify integrity of the file. So let's go ahead and copy the original 16 symbols over to our new file.
Spoiler for Hiden:

Finally, replace the database.

Done! Now you can just run your game and host a server without any hassle.

In conlusion
Now do keep in mind, there's a big limit on what's possible through modding in mulitplayer (given that the other side doesn't have your mod, of course).
For instance if you're going to change things: like increasing or adding spawns, changing up loot - that makes sense in multiplayer since guests on your server will be able to interact with this content.

Where if you're going to add things: like new mastery/skills/monsters, that doesn't make sense since their records and resources do not exist in the original game, which means players without your mod just won't see it.
So:
Xmax ✅
LootPlus ✅

Soulvizier❌
Shadow Champions❌

And now for a little announcement!
The purpose of this post is not just to share this information.
Nowadays, there are not a lot of modders left that are interested in multiplayer, so we decided to create a dedicated space, to revive the scene and have a somewhat active community.

I'm going to be sharing the cheat table I mentioned above, among other interesting creations. We also have a modding guide (special kind!) in the works.
So come join us if you're interested in mupltiplayer/pvp modding! Or just modding in general for that matter, we're a diverse community.

https://discord.gg/mDePTdYC85
« Last Edit: 11 September 2024, 15:06:13 by Endymion »

Tags:
 


SimplePortal 2.3.7 © 2008-2024, SimplePortal