What dll is responsible for injecting trainers into the game's exe?

I just recently got WeMod working on my Steam Deck, but while WeMod successfully hooks to the exe, the mods aren’t being injected properly. I’m thinking of using ICGSInjector to ensure the proper dll does it’s job, but I’m not sure which it is. The ones I’m looking at are TrainerLib-x64, CELib_x64, or Trainer_34456_fa9949c740

I know you guys don’t officially support Linux, but this is a lot of progress made and aside from the mods not loading in, everything is working perfectly, except for the cheats failing to assemble. The assembler loaded successfully and stuff, but I’m sure you guys would understand the log better than i do.

WeMod.log (38.9 KB)

You may have better luck using the latest version of the app. Does the version you’re using run fine on Windows? It’s a couple years old.

The log looks fine to me, aside from no mods being enabled.

CELib_x64.dll is required to assemble scripts. TrainerLib_x64.dll is in charge of loading that and the trainer DLL (the one with the random file name). A separate process injects and executes TrainerLib to bootstrap it all.

Yeah I’m not sure what i was doing wrong before, but its working on my Steam Deck now. Clearly the only install i did entirely correctly was WeMod’s individual prefix, so I’ve taken to just copying the system32 and .Net Framework folders from WeMod’s Windows folder to whichever game I’m installing it to, and i symlink the steamuser folder from the game to WeMod’s prefix to run the installer. But everything is working fine here now, just wish i could more accurately say why things are now running fine lol won’t be much help if anyone else on Linux/SteamOS runs into that issue.

1 Like

You think you could ask the WeMod devs about the possibility of making a WeMod Decky plugin? Before the Steam Deck released Chris suggested that while supporting Linux generally is out of the question, there could be interest in more narrowly supporting SteamOS, and a Game Mode plugin that hooks into whatever prefix is loaded to search for exes and apply the proper trainer would be a fantastic idea.

Frank is a developer. Right now though our focuses are on other projects in WeMod. We would still like to support steam deck in the future but our dev team just isn’t able to handle it right now.

Oh! Lol sorry, i wasn’t sure if he was a dev or a mod. I’m glad to hear that there are plans. I got it working, so my solution will tide me over until a more official option is made. I was just asking though if you guys could chew on the idea of making a plugin client instead of like remaking the full program for Linux. I imagine on a technical level it would be a bit of an easier task and would be very useful from a user perspective to be able to just hit the quick access button, and load in a trainer.

I’ve been getting the 64 bit warning error lately, but i got that solved as well. In Steam Tinker Launch you can have the custom command launch after the main game, but i have never gotten that to work with WeMod, it just doesn’t seem to launch. So i found that if I don’t even touch WeMod until i load into the game, it’ll properly work. I’ve been mainly playing Assassins Creed lately so no doubt the Ubisoft Connect launcher is the cause.

And i was making the install a LOT harder than it is. Installing DotNet from Winetricks forced me to download like every version of DotNet, if i ONLY installed 4.8 I’d still get wrong version of DotNet warnings. And i was adding steps that i didn’t know if they were necessary but didn’t want to take any chances. This installer for DotNet, though, did the trick.

So my new process is do the first start with the Proton you plan to play the game with, while you’re doing that use Winecfg to make sure its at Windows 10, and to add d3d11 and dxgi as native overrides to the library. Then switch to Proton-6.19-GE-2, make sure that’s at Windows 7. Open up Winetricks and go to Run Uninstaller. There is an Install button at the top. I use that to first install DotNet Framework 4.8, then WeMod. If you install WeMod first it gives the classic wrong version of DotNet error. Sometimes it gives the something went wrong please reinstall error, and when that happens you gotta just delete the prefix and start again. Haven’t had that happen more than once or twice with any game. Generally after you reinstall it in a new prefix it runs fine.

Also I’m happy to report that the WeMod app works perfectly. I was worried that because of how Proton/Wine works I’d have to put in the code to connect it with every game, like how i gotta login to the launcher for every game. But it turns out the app is client agnostic. I can have 1 or 20 clients, and unless i click disconnect from the app, it connects to each and every one of them automatically. Which is very useful because for some games, it like freezes WeMod where its not interactable. For those games i click use custom command only to login, then go back to fork and use the app to control it since i can’t click anything.