jdv on 3/9/2013 at 22:39
Quote Posted by Tautologist
Sure, I'm happy to help.
Excellent information. I will be sure to look into this when I have the time.
Unfortunate news: my laptop (my one and only computer) blew a gasket on Friday and I was forced into purchasing a QnD replacement for work. I am building a workstation + GPU in the next few months, but until then, my new basic laptop won't be able to run Dishonored at all. In other words, work has ground to a halt on this project for now on my end.
If anyone out there is willing to do the work themselves and submit patches, I will be happy to upload those files here. I will continue to monitor this thread and support the project in any way possible. Work will resume as soon as I have a capable computer again!
Cheers, and apologies,
Joseph
Tautologist on 8/9/2013 at 12:50
Heya. I've had some free time so I wrote a small tool for editing Dishonored's UPK files. It's actually not directly related to the game, and can be used for editing any binary file, but I wrote it with Dishonored in mind.
It basically saves a file path, a location within the file (the offset, in bytes), and a data type. It associates each entry with a name and a group, and lets you modify these variables through a simple table interface. Here is a screenshot.
Inline Image:
http://i.imgur.com/Qu3chgm.png(note that some values seen in the screenshot are modified).
The tool doesn't decompile anything. It just saves offset/datatype combinations you've found in some other way (e.g. using the hex editing methods I outlined above) and lets you modify them easily. I've added the existing variables myself. There are a few hundred of them, I think. Specifically,
* Variables affecting active powers (e.g. Blink distance, Bend Time duration, mana costs, rune costs)
* Prices for all store items and upgrades
* Potion-related tweaks
* Difficulty-based character tweaks for the Very Hard difficulty. This includes movement, item capacity, and lots of other things. It's possible to edit these settings for other difficulties (I know where they are located), but I haven't added them to the application.
* Some weapon-related statistics that may or may not work.
REQUIREMENTS:
* You need .NET Framework 4.5 to use the application.
* Current variables work for the latest version of Dishonored with all three DLCs. I'm interested in whether the variables are compatible with other game versions.
USAGE INSTRUCTIONS
* Decompress the UPK files
Startup.upk, DishonoredGame.upk, and
L_Pub_Craftsman.upk using Gildor's tool.
* Open the file
fields.xml that comes with the application and change the paths to the paths of the UPK files you decompressed.
NOTES:
* By the way, this might be obvious, but all the application actions are in the context menu.
* The program only loads the files only when it is reading/writing to them, and even then, it doesn't prevent other programs from using them. However, some programs, such as UE explorer and the game itself, lock a file so that it cannot be modified. You won't be able to commit changes to the file until it is unlocked.
* Some of the variables may not have in-game effects or cause errors. I've tested quite a few of them and they seem to work, but I can't make any promises.
* The program might have bugs so I recommend you save your work from time to time.
(
https://dl.dropboxusercontent.com/u/81574139/Field%20Editor.zip) Download
jdv on 12/9/2013 at 13:02
Quote Posted by Tautologist
Heya. I've had some free time so I wrote a small tool for editing Dishonored's UPK files.
Err, where do I mail you a cake? This is beyond fantastic. I don't have a computer to tweak dishonored on yet, but you can be sure that I will be using this tool as soon as I can. Amazing contribution. Thank you so much!
Tautologist on 13/9/2013 at 18:00
@jdv, I'm glad you like the program :) I'm interested in how/if people might use it, and what they'll create. I have my own mod ideas for Dishonored too, mainly concerning things like store prices and resources. There is truly a massive amount of things you could easily modify though, even if you can't decompile them through UE explorer. I deciphered bone charm and upgrade data (the easily tweakable parts, anyway), and it was fairly simple.
I'm not entirely sure if my postal service accepts cakes, but I'll be sure to ask :P
I sort of turned this application into a project in learning WPF. Here is a new version. It has several new features, including:
* A coherent menu system and general improvements to usability, including keyboard shortcuts, auto-completing text boxes, and more
* Another level of grouping and some extra fields
* Live filtering/searching
* Remembers settings
* You can now browse for the XML fields file you want to open.
* You don't need to mess around with editing the XML file. When you launch the program it will ask you for a data folder, and it will expect to find all binary data files in this folder (by name). This means you don't have the option to specify a custom path, but I doubt that's necessary. You can change the current data folder in the menu.
Inline Image:
http://i.imgur.com/FRtEX07.png(https://dl.dropboxusercontent.com/u/81574139/Field%20Editor%20v0.5.rar) Download v0.5(
https://dl.dropboxusercontent.com/u/81574139/Field%20Editor%200.5.1.rar) Download v0.5.1 (Bug Fix)
(
https://github.com/GregRos/FieldEditor) Link to 0.6 experimental release (Github repository; includes source. This release doesn't have any new features. It's experimental because I've changed the code a lot. )
I've also further updated the field definitions for Dishonored (in the included XML file). You will now also need to decompress the file
Twk_Upgrades_SF.upk, which contains a few upgrade definitions.
* Some power-related variables that were missing. In particular, you can now tweak Possession duration for humans/animals, as well as movement speed while possessed. Another missing variable was Bend Time's Level 1 World Dilation (how much the world is slowed down).
* Some character tweaks that were missing
* You can now change the numeric parameters of all upgrades and bone charms. Each of these stores a floating point number that is almost always used in the game logic (with some probable exceptions). It's not always obvious how each number effects each bone charm/upgrade, but I've used the added 'notes' field to give some clues/explanations. Included here are the bone charms/upgrades granted by pre-order DLCs, since these exist in the original game resource files.
I've verified that these variables work without the DLCs (though of course most won't affect DLC content -- they have their own upk files). Some variables are broken without the latest patch however, and future patches may also break them.
I've also noticed that Dunwall City Trials won't post your scores on the leaderboards if you use modified UPK files, since it does check file consistency. I'm pretty sure this doesn't stop you from getting achievements though.
jdv on 13/9/2013 at 21:42
Quote Posted by Tautologist
I've also noticed that Dunwall City Trials won't post your scores on the leaderboards if you use modified UPK files, since it does check file consistency. I'm pretty sure this doesn't stop you from getting achievements though.
Amazing. I'm very motivated to get this new computer ASAP to get tweaking.
My bet is those who will use this will have exhausted the dunwall city trials, but that is an assumption. I should learn how to write a proper installer / uninstaller to let people play on DCT when they want.
YamiLeto on 14/9/2013 at 15:11
Thanks Tautologist for this tool. It's let me do a lot of modding I've been wanting to do but couldn't. Shame that the corvo tweaks don't seem to affect Daud to my knowledge. I do have a question though. Is it possible to remove the slight time dilation from blink? Thanks again for the tool it's great to have made a few of the skills more useful by tweaking duration times.
Jason Moyer on 14/9/2013 at 16:25
Downloading this to have a poke at it. Is there a way to put the DLC bonecharms into the main randomly selected pool? Because that would be outstanding.
Tautologist on 15/9/2013 at 18:48
Jason Moyer, if there is a way to do that, I really have no concrete method how. It would be a lot more complicated than editing numeric fields, if it is possible, and could change the file structure, making other modifications harder as well (at least, using my simple tool). Also, the only way I can think of doing this involves lifting content from the DLC and modding it into the original game, which is problematic.
YemiLeto, most of these tweaks don't affect Daud. The DLCs have their own UPK files, located in DishonoredGame\DLC. Each DLC has its own set of UPK files. The content in DLC06 is copied over to the DLC07 UPK files, but DLC07 seems to introduce its own character and power tweaks as well. I've mainly looked at DLC06, so here is a list of things I've found out.
* Many DLC06 UPK files basically contain duplicate content, and also contain some content copied over from the original game UPK files. The game probably picks some specific content from each UPK file and uses it, but finding that specific content might be tricky in some cases. Files/objects/classes are generally prefixed with DLC0X_, but I'll drop that prefix.
* The game almost certainly uses GlobalStore.upk (specifically, this is in the object DLC06_Twk_Store.DLC06_Twk_GlobalStore) for store inventory, and Store_SeekFree_SF.upk contains additional store tweaks.
* The game probably doesn't take much meaningful content from DishonoredGameFull_P.upk, since the original game has this sort of file and doesn't use it for much either.
* I suspect most power and player tweaks are in Twk_Player_Daud_SF.upk. Player tweaks are found in the object Twk_Player_Daud.Twk_Player_Daud_Release. The object pCharmListTweaks contains the list of bone charms.
* While most things are set in the DLC UPK files, these don't have many class definitions, which they import from the original game's class definition files, such as DishonoredGame.upk. Some specific variables are set as default property values on the Tweaks class level. One specific example is Bend Time's Level 1 world dilation, which is set in DishonoredGame.DisTweaks_BendTime. Tweaking these specific values will carry over to the DLC, unless the DLC specifically changes them to something else. Level 1 World Dilation probably does carry over.
About your second question, I'm not 100% sure. These tweaks don't appear in Twk_Powers.Twk_Blink. However, the class DisTweaks_Blink.PowerAttributes_Blink *does* contain the fields m_fBendTimeDownTime and m_fBendTimeUpTime. They are set by default on the class level. I've mapped these default values previously during testing, but they didn't seem to have any in-game effect, and I didn't think they were very interesting, so I scrapped them. There are also several more fields I didn't add, and one of them might have an effect on this. (e.g. the ones with the word 'distortion').
The next thing I'll do is try to write up a more complete guide about how to reverse engineer these UPK files, since I've generally found much better techniques than my previous explanation, so people will be able to find whatever field they want to modify fairly easily. I'll also write some information about the game's internal structure (at least, whatever I've managed to glean so far).
Cronus on 11/10/2013 at 15:27
Then there's anyone here? I check this thread every day. :confused:
jdv on 12/10/2013 at 15:55
Hello!
I've been checking as well. Time and resources do not permit me to continue working on this for now, but never fear: come november 15th, I will have a brand new supercomputer AND the time needed to implement these advanced mods. Is anyone else working on the mod?
Cheers, Joseph