Saracoth on 7/6/2004 at 00:08
*EDIT* I've released (
http://www.ttlg.com/forums/showthread.php?p=1327476) a newer version of the program using Java instead of .Net. Gamesys Tweaker v2 supports custom version files, so it can work with non-original gamesys files (such as those in the newer versions of the minimalist project or from fan missions). */EDIT*
*OLDER EDIT* There is (
http://saracoth.the-engine.org/downloads/TDSGameSys.zip) a program availible to edit these values for you. If you don't feel like reading, download the zip, skim the readme, and have a ball. */EDIT*
I, for one, would prefer few or no limits on equipment carried. If Garrett can technically haul around every single piece of loot stolen from day one 'til endgame, and even somehow smuggle it all into jail with him, I see little reason not to go higher. I hardly used anything my first game anyway, much less depleted my supply of anything. I had close to 50,000 gold to my name and was only short two noisemakers from absolutely maxed out equipment. It's just a flavor thing for me, really. A throwback to T1/2 if you will. More incentive to scour every inch of the city daily.
Usual warnings here. Back up what you're changing, you take responsibility for whatever breaks as a result, etc. etc. etc. You'll need a hex editor. I still use Hex Workshop myself, but there must be other newer, good, free ones out there. Be sure to overwrite existing values, not insert new ones.
These are in the System\T3Gamesys.t3u file. Lots of nifty stuff here, no doubt. Even references to ropes and rope arrows. Devs, we know you tried. *salute* Note that these are only maximums you may hold, not the amount you obtain when picking up items (though that might be there as well), and not a direct way to give you infinite items. The default value will look something like 1900 0000 in a hex editor, and the maximum value is FFFF 7FFF (roughly two billion). Also, note that having more than three digits looks sloppy, so you may want to keep the limits to 999 or less (E703 0000). If you want to set you own, you can convert a decimal number to hexidecimal with the Windows calcultor by switching the View to Scientific and clicking the appropriate radio buttons. Be sure to add 0s where needed. Due to the way the computer stores data, you have to reverse each pair of digits. So, two billion is 7735 9400, but you must put 0094 3577 into the hex editor. Likewise 999 comes out as 3E7, but you see the result in the above example.
Prices are at least 1 gold per item when you actually go to buy them, even if set lower here. Also note that at really high maximum values and really low prices, stores get a little...slow. The purchase slider is the issue. Expect long pauses as it counts through hundreds or thousands of items when it's used to counting only a handful. Even clicking on a specific location rather than dragging will cause a pause. They will pass, however.
Most of these are untested (except for water/broadhead arrow max and broadhead price), but since I was surprised to even see what looked like the price for climbing gloves (given my elemental arrow problems), I pointed it out specifically. I'm about as confident in them, however. Likewise for practice locks. I suppose that the elemental arrows (and only these) have prices stored elsewhere. Holy Water flasks, being unavailible for purchase, have no price.
I have since become aware that someone on the Ion boards has posted some of these offsets and defaults (for item maximums, anyway). I'm not ripping off that work (didn't even scour the boards until after doing my own research). It's just that finding this stuff is about as low-level, script kiddie-ish as one can get in this area--so very simple with knowing just the basics, really.
Also, though this sort of goes without saying, these offsets can and probably will change when the patch comes out.
Offset - Item, Default (decimal)
Maximums:
2531D - Water Arrow, 19 (25)
2618C - Moss Arrow, 14 (20)
26382 - Fire Arrow, 0F (15)
26D36 - Flashbomb, 14 (20)
2924C - Noisemaker Arrow, 05 (5)
2B0B8 - Gas Arrow, 05 (5)
2BC21 - Explosive Mine, 05 (5)
2D11C - Holy Water, 05 (5)
2FD8C - Broadhead Arrow, 1E (30)
351BA - Gas Bomb, 05 (5)
41847 - Oil Flask, 05 (5)
53ACD - Health Potion, 0A (10)
Prices:
291F6 - Noisemaker Arrow, E1 (225)
2A6F5 - Water Crystal, 64 (100)
2FD37 - Broadhead Arrow, 64 (100)
34EFD - Practice Lock (Fancy, Gold), E803 (1000) - untested
35088 - Practice Lock (Square, Silver), EE02 (750) - untested
35307 - Practice Lock (Shield, "Default" ... Iron?), F401 (500) - untested
354AA - Practice Lock (Diamond, "Default" ... Iron?), FA (250) - untested
3DC07 - Fire Crystal, FA (250)
3F239 - Moss Crystal, 7D (125)
3FAAE - Gas Crystal, 4501 (325)
46C4E - Oil Flask, AF (175)
50F48 - Gas Bomb, 7701 (375)
53A7A - Health Potion, C8 (200)
4F850 - Explosive Mine, 1301 (275)
4FC29 - Flashbomb, 64 (100)
98858 - Climbing Gloves, D007 (2000) - untested
Somewhere I read someone requesting different loot percentage requirements. I would agree with this, especially on Expert. I routinely got over 90% loot anyway (and plan to do so even on my second, Easy, killing spree playthrough), but there's one mission where playing on Expert means you're forced to be a bastage (because one item you might want to skip is worth over 10% of the total loot), depriving you of a potential lesser reward and warm fuzzies later on. These are also 4-byte sets, in the same file. For obvious reasons, you probably won't want to set any of these higher than 100% or higher than 3 special loot items ;)
Better yet, I saw a lot of FFFF FFFF flags in the T3DifficultyInfo section which turned out to be gold. Just see the list below.... Remember, though, some of these may be impossible in certain missions (like completing in one minute, blackjacking more than the number of BJable AI, etc.). There is no counter for how many you've blackjacked or killed, or times caught, and the time limit always shows 0 remaining so there's no easy way to know how close you are to that limit, but it does indeed work otherwise. I haven't gotten the Minimum blackjacks and kills to appear on the pre-mission screen, but those objectives WILL be added once you've started the mission. Note that minimums are objectives. Everything else is a restriction. Kind of thought that area of the screen was blank, didn't you? You can have both minimums and maximums, and the cap on time limit seems to be 100 minutes. Set a maximum to zero for not at all (like, "Don't get caught at all").
I can say this, the bodies discovered is indeed based on the body. So if two AI discover the same body, even at different times and places, it only counts once. Bodies you are carrying count as discovered if you get caught. An unconscious AI that dies on its own torch does not count as a kill for you, but if you directly attack a dead body it will. I'm not sure about, say, tossing an AI into a damaging area of the level (pre-existing fire, etc.). Likewise, I'm not sure if non-human or non-living kills count towards minimums and maximums.
1877C - Easy Percentage, 1E (30%)
18783 - Easy Special Loot, FFFF FFFF (-1, a special flag saying "N/A, and no objective")
1878A - Easy Minimum BJs, FFFF FFFF (-1)
18791 - Easy Maximum BJs, FFFF FFFF (-1)
18798 - Easy Minimum Kills, FFFF FFFF (-1)
1879F - Easy Maximum Kills, FFFF FFFF (-1)
187A6 - Easy Maximum Times Caught, FFFF FFFF (-1)
187AD - Easy Maximum Bodies Discovered, FFFF FFFF (-1)
187B8 - Easy Time Limit, FFFF FFFF (-1)
187CC - Normal Percentage, 28 (40%)
187D3 - Normal Special Loot, 01 (1)
187DA - Normal Minimum BJs, FFFF FFFF (-1)
187E1 - Normal Maximum BJs, FFFF FFFF (-1)
187E8 - Normal Minimum Kills, FFFF FFFF (-1)
187EF - Normal Maximum Kills, FFFF FFFF (-1)
187F6 - Normal Maximum Times Caught, FFFF FFFF (-1)
187FD - Normal Maximum Bodies Discovered, FFFF FFFF (-1)
18814 - Normal Time Limit, FFFF FFFF (-1)
18881 - Hard Percentage, 3C (60%)
18888 - Hard Special Loot, 02 (2)
1888F - Hard Minimum BJs, FFFF FFFF (-1)
18896 - Hard Maximum BJs, FFFF FFFF (-1)
1889D - Hard Minimum Kills, FFFF FFFF (-1)
188A4 - Hard Maximum Kills, FFFF FFFF (-1)
188AB - Hard Maximum Times Caught, FFFF FFFF (-1)
188B2 - Hard Maximum Bodies Discovered, FFFF FFFF (-1)
188C9 - Hard Time Limit, FFFF FFFF (-1)
188DD - Expert Percentage, 5A (90%)
188E4 - Expert Special Loot, 03 (3)
188EB - Expert Minimum BJs, FFFF FFFF (-1)
188F2 - Expert Maximum BJs, FFFF FFFF (-1)
188F9 - Expert Minimum Kills, FFFF FFFF (-1)
18900 - Expert Maximum Kills, FFFF FFFF (-1)
1890B - Expert Maximum Times Caught, FFFF FFFF (-1)
18912 - Expert Maximum Bodies Discovered, FFFF FFFF (-1)
18925 - Expert Time Limit, FFFF FFFF (-1)
The awareness, combat speed, and damage dealt is stored in Default.ini, of course. Number (and locations) of opponents is almost certainly stored in each mission's map, so no easy edits there. Yet.
I've found traces of other things. Spawn points, for example. Nothing, I don't think, which can be done here, but it seems to match up with my impressions of the city areas. If you cause a lot of havok one day, the next day is likely to have more guards walking around (ParanoiaSpawnPointLow, Medium, and High). They appear to be mostly just markers, similar to those in T1/2, so there's very little data and probably nothing that can be altered without tweaking the maps or some other aspect of the game. I'd like to see at least a little delay...greater distance (so you're even less likely to see people popping out of thin air, as I have).
The only difficulty I can think of in finding the value of pieces of loot is having a list of what they all are and their values for reference purposes. That's a lot of tedium is all, but that information is definitely stored here as well, ripe for editing.
Now if someone with a little more time and ambition wanted to put together a little application to tweak these values in a user-friendly manner, I'm sure everyone would appreciate it. Things like bulk adjusting all prices, maximums, and/or loot values by a percentage (rounding to the nearest multiple of 5 or something). Maybe integrate it into an ini tweaker.
(Edit) Actually, prices for elemental arrows are stored with data for the crystals (WaterCrystal, etc.), not the arrows. Added their offsets above. (/Edit)
(Edit) After playtesting, I've realize that equipment works similarly to arrows--maximums in projectiles, prices in stationary items (exception for healing potions, which of course are not thrown). Changed offsets and updated program accordingly. If you're paranoid, you can restore the default values for the incorrect offsets below, but they've had no impact on my game anyway. Only a few of the maximums were incorrect. All else, thus far, has proven right.
Old/Incorrect Maximum Offsets (no in-game effect).
46C90 - Oil Flask, 05 (5)
46D9B - Holy Water, 05 (5)
4F897 - Explosive Mine, 05 (5)
4FC6C - Flashbomb, 14 (20)
50F89 - Gas Bomb, 05 (5)
Saracoth on 11/6/2004 at 03:31
Quote Posted by Lake
Sweet. I am going to try to lower the amount of gear Garrett can carry.
Heh, you can probably beat the game with only a single water arrow for the training mission, if you have the perseverance. Even in the training mission, you can jump instead of using a noisemaker to distract the guard, and I've had success with the last encounter by carefully mantling over the barrel to the left as you walk into the room (avoiding the encounter alltogether).
If you'd like, you can change starting equipment. The stuff for the training mission is nearly pointless (nothing carries over to the next mission anyway), but the stuff for the second (first real) mission is around 0x9DBBB (the first quantity offset). Some notes: 0x9DBA0-3 seems to mark the length of the following section, 0x9DBA4 seems to denote the number of starting equipment entries, and then you've got the real stuff. However, I've still been unable to change the length of the section without crashing. And I can't figure out why some items have 5D, length + 1, length, and then the null-terminated item name string, while others have 3D or 4D, length, and the string. You can easily put in shorter-named items most of the time. Swapping flashbombs for oil flasks, for example. Just overwrite additional characters with 00s so the length of the file remains unchanged. And remember, case matters. If it still crashes, it's probably because you put a 5D item into a 3D or 4D slot, or something similar. I don't know for sure what's what at the moment, though.
If I ever get this section completely figured out, I'll add it to the program. Meanwhile:
9DBBB - Starting Daggers, 01 (1) -- you'll get one when you start the mission even if set to 0 or changed to another type of item
9DBD9 - Starting Blackjacks, 01 (1)
9DBF4 - Starting Broadheads, 14 (20)
9DC0E - Starting HealthPotions, 01 (1)
9DC2F - Starting Flash Bombs, 08 (8)
9DC46 - Starting Water Arrows, 19 (25)
9DC63 - Starting Noisemaker Arrows, 05 (5) -- but you'll have at least 2 more no matter what (up to your maximum)
9DC7E - Starting VaultMedallion, 01 (1) -- not having this doesn't affect the mission, so you can easily change it to something else
Names:
GasArrow
MossArrow
FireArrow
WaterArrow
HealthPotion
GarrettDagger
BroadheadArrow
VaultMedallion
NoisemakerArrow
GarrettBlackjack
GasBombProjectile
OilFlaskProjectile
FlashbombProjectile
ExplosiveMineProjectile
HolyWaterPotionProjectile
As noted, you'll be given a dagger, a medallion, and two noisemakers once the mission actually begins. Still, you can play through the game without the blackjack if you wanted. Some might think killing people is for the childish or unskilled, but when you're trying to be stealthy using only the dagger really, really adds an element of challenge not otherwise found (especially near the end of the game). It also means you can very easily replace the dagger or medallion with any item whose name is of equal or lesser length, without consequence.