Credits: Csimbi
The table includes a number of AOB scripts. AOB scripts might work with various game versions (or crash them).
You should enable the scripts only when you actually need them; turn them off for the rest of the time.
The first script includes:
- Infinite moves; obvious.
- Min. health; obvious.
- Min. offense; obvious.
- Min. defense; obvious.
- Min. will; obvious.
- Min. grenades; obvious.
- Min. Meld turns; keeps the turn counter at a minimum level. -1 means infinite.
- Min. stuns; obvious.
- Min. rockets; obvious.
Some of these are enabled by default - edit the script to change them to your liking.
You might need to flip once forth and back between team members so the UI of the currently selected soldier updates.
Intended usage for the "Soldier patcher" script:
1. Enable script.
2. Set up variables as desired (enable/disable Boolean values and change minimum values).
3. Switch back to game.
4. Go to Barracks -> View Soldiers and click on any soldier in the list.
5. Press and hold both CTRL and ALT when you click on the left/right arrow (the buttons that flip the page to the previous/next soldier).
6. The soldier you flip to while holding CTRL and ALT will be checked and patched if needed. Again: not the current one, the one you're about to switch to!
If you want all soldiers patched, just rapidly click through the whole list while holding CTRL and ALT.
As of update #6 and #7 soldier stats are included as well (see change log at the bottom), so the following two lines are more or less obsolete:
The table exposes a variable called 'pLastPatchedSoldier'; you can use the address in the data dissect window with reversed structures like, for example, this one. (My table does not come with any structures on purpose; I'm sure that a team of creative people out there will dig stuff out much faster than I possibly could alone.) If you don't know how to use the exposed address, just ignore it (or read tutorials on structures and the data dissect window).
If you have a nice dissected structure, post it, PM me and I'll link it here. Please consider colour-coding the values in your structure(s) for easy browsing and readability. Or, include a number of smaller structures (with related things) instead of a big one. Or do both. Wink
The object script exposes:
- Panic levels of each nation.
The resource script exposes:
- Money.
- Engineers.
- Scientists.
- Elerium.
- Alien Alloys.
- Weapon Fragments.
- Meld.
- +smoreidontwannatypeup.
Thanks to all of you who have contributed! (see change log below)
Update #1:
Added Min. Meld turns for the tactical phase.
Added a second script, which is a fixed version of the script I made earlier for the first XCOM game (the offsets were off, other than that, it works perfectly). Recovery time is missing (and is commented out) for now as I have no wounded soldier yet. If you know the offset, please let me know.
Update #2:
Added resource script.
Money, engineer and scientists were easy once I traced the money back to its parent array. Meld took some time as it does not seem to be part of any specific structure - I had to do a lot of pointer scans to eliminate false positives. Meld is sitting with a bunch of other variables that are mostly 0 or 100. For Meld, I picked the shortest possible pointer route with the same base address as money and scientists. If, for some reason it causes a crash (or other weird stuff), please let me know what you did when it happened.
Update #3:
It seems that the resource script has been reading into uninitialized memory on loading a game/mission, causing crashes.
Replaced resource script with a pointer grabber and exposed values via table entries instead, thus eliminating the crashes.
Update #4:
My resources (well, the items) disappeared; it seems I did pick the wrong pointer in update #2. I replaced it with another one, this one works better I hope.
Also, I exposed a bunch of items using pointers, not just resources.
I also found the recovery time, however setting the remaining time to 1 screwed up my augmentations, so until further testing it'll remain disabled.
Lastly, I got some abilities and more grenade types, so the tactical script will now patch those, too.
If you are willing to expand the pointerlist for items, the address you need to put into the dissect window is: [[[pArray]+598]+1f4] - enable the resource script to grab pArray.
Update #5:
Fixed recovery time in the soldier patcher; now your soldiers will be instantly healed.
Update #6:
Merged in the panic levels and the last selected soldier stats from lampuiho's post here and added the Psy abilities that were missing.
Thanks lampuiho!
Update #7:
Fixed an incorrect table entry - reported by Emmote here - thanks a lot!
Noone was complaining about the resource script v2 not working (other than crashes, which is now fixed), so I made that the resource script from now on.
At the same time, the old resource script was renamed to "object array script" and I moved the resources from under it to the new resource script.
Merged in additional soldier stats and resources from ilidan371's table here - and rearranged them a bit - thank you for you work as well!
Update #8:
pArray -> pMoneyObject "Replace all" also replaced Panic pointers - reported by ilidan371 here - thanks a lot!
Added 'Rocketeer' heavy ability.
Update #9:
Merged in construction time and medal offsets from ilidan371's post here - thank you for continued support! I think it's time to give you +1 rep. Wink
Update #10:
I added a second table for those playing v1.0.0.4964.
The hooks had to be updated (maybe an offset if I recall correctly); it seems they added a number of checks that trigger game exit and other fancy crap when the game is modified. I guess checking the whole image (it's 27 megs) would be quite taxing, so they check only certain points for modifications - guess which points? Anyway, since they do not check the whole image, I just moved the hooks elsewhere for now. In the future, we might have to disable these checks instead (or reroute them).
Added Foundry upgrade speeds (and I can't remember what else).
Update #11:
Updated v1.0.0.4964 table.
Tactical script: more grenades, battle scanner.
Soldier patcher script: more abilities exposed for easy patching (bPatch*).
Object array script: PSI labs queue
Resource script: Engineering queue (added only the first 5, but you can add more if you need them, just add +0x80 to the offsets.)
I am done with the game, so don't expect any more updates (well, from me, at least).
Those of you having problems with the panic level pointers, have a look at ilidan371's post here.
-----------
Credits: ilidan371
For those having trouble adjusting pointers for the panic levels, you can just use this table instead.
I've included 2 versions of the panic level pointers. If the 1st set don't show the right values, use the alternate. In my experience, one of them will always work, but I might be wrong.
How to use this cheat table?
- Install Cheat Engine
- Double-click the .CT file in order to open it.
- Click the PC icon in Cheat Engine in order to select the game process.
- Keep the list.
- Activate the trainer options by checking boxes or setting values from 0 to 1