Hi! I just added the "Oasis" to my borderlands and when I start the game now it's telling me the host (thats me… singleplayer…) has an incompatible version or is playing DLC I don't own (I have them all). So I wanted to change my current location from "Oasis" to "T-Bone Junction" (that's where I was before… but everything else would be ok too) but when I save the savegame and reload it it's still saying current location "Oasis". How is that possible?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The short answer is that the current location is read-only, so you can't use WillowTree# to change it.
This feature was implemented before I ever did any work on WillowTree#. I looked at the code and found that it is designed to be able to edit the location, but there is a a bug that results in the value you select for current location never being saved because the code does a comparison involving CurrentLocation.SelectedText instead of CurrentLocation.SelectedItem. This bug has existed since at least WillowTree# 2.0 beta 10r13, which is the oldest version of WT# I have.
I tried to fix that bug and it does allow the saving of the location but I found that the game did not work properly when certain locations were chosen from the location list, so there are probably more bugs in the code or data tables which would result in the location being corrupted sometimes when you save the game if you actually could modify the location. Its probably best that you can't until the code for doing that is completely rewritten and tested thoroughly, something that probably won't be happening right now.
All is not lost though. Borderlands will reset the location back to the game start point in Arid Badlands if the location is unrecognized, so you can use a hex editor to change it manually. To do so do the following:
1) Make a backup copy of your savegame just in case you screw something up while editing it and need to restore it.
2) Open the save file in a hex editor. The one I use is called HxD and it is freeware, but there are many available.
2) Search for the name of a location in the location list with the hex editor's text search function. "Fyrestone" is a safe bet to find.and is usually the first entry in the list.
3) The list is a bunch of string entries with 4 bytes before each one to tell the length of the string and a zero byte afterwards to terminate the string. Read this consecutive list of strings until you come to the last string in the list. That is the current location, which may actually be "Oasis" or may be some internal name that the game recognizes as that location. Overwrite one or more letters in that last entry to make the name invalid, perhaps changing the name to Xasis or something like that. Make sure you are overwriting not appending new letters because the file length must stay the same or your save will be corrupted. Only overwrite letter characters and not any of the zeros or numbers.
4) Save the modified file over the original
5) Load the character in Borderlands and it should start out in Arid Badlands because it does not recognize the location.
Note that if you are using Xbox and not PC or PS3 then you can't edit the savegame directly with your hex editor because it is inside an Xbox package file which has a file hash that will become invalid if you change parts of the file. To do so, you need to first convert the savegame to PS3 format using WillowTree# 2.2.1 or later, then edit the PS3 format savegame with your hex editor, then convert it back to Xbox with its original filename. To convert a file in WT# you load it, then select Change Save Format from the open file menu to change the format in the memory, and finally you click Save As to save the new file to disk either in a new location or over the original, but remember to make a backup of your original in case anything goes wrong.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you very much! I solved my problem in a different way though:
1. Start game.
2. Open console, write "show", enter, close console.
3. Selecting my save, press enter.
4. Open console, write "open arid_…_p" (the Fyrestone map… I forgot the name)
5. It teleported me there, I ran to the next New-U station and that's how my current location was changed.
Now I can load my save the normal way again.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi! I just added the "Oasis" to my borderlands and when I start the game now it's telling me the host (thats me… singleplayer…) has an incompatible version or is playing DLC I don't own (I have them all). So I wanted to change my current location from "Oasis" to "T-Bone Junction" (that's where I was before… but everything else would be ok too) but when I save the savegame and reload it it's still saying current location "Oasis". How is that possible?
The short answer is that the current location is read-only, so you can't use WillowTree# to change it.
This feature was implemented before I ever did any work on WillowTree#. I looked at the code and found that it is designed to be able to edit the location, but there is a a bug that results in the value you select for current location never being saved because the code does a comparison involving CurrentLocation.SelectedText instead of CurrentLocation.SelectedItem. This bug has existed since at least WillowTree# 2.0 beta 10r13, which is the oldest version of WT# I have.
I tried to fix that bug and it does allow the saving of the location but I found that the game did not work properly when certain locations were chosen from the location list, so there are probably more bugs in the code or data tables which would result in the location being corrupted sometimes when you save the game if you actually could modify the location. Its probably best that you can't until the code for doing that is completely rewritten and tested thoroughly, something that probably won't be happening right now.
All is not lost though. Borderlands will reset the location back to the game start point in Arid Badlands if the location is unrecognized, so you can use a hex editor to change it manually. To do so do the following:
1) Make a backup copy of your savegame just in case you screw something up while editing it and need to restore it.
2) Open the save file in a hex editor. The one I use is called HxD and it is freeware, but there are many available.
2) Search for the name of a location in the location list with the hex editor's text search function. "Fyrestone" is a safe bet to find.and is usually the first entry in the list.
3) The list is a bunch of string entries with 4 bytes before each one to tell the length of the string and a zero byte afterwards to terminate the string. Read this consecutive list of strings until you come to the last string in the list. That is the current location, which may actually be "Oasis" or may be some internal name that the game recognizes as that location. Overwrite one or more letters in that last entry to make the name invalid, perhaps changing the name to Xasis or something like that. Make sure you are overwriting not appending new letters because the file length must stay the same or your save will be corrupted. Only overwrite letter characters and not any of the zeros or numbers.
4) Save the modified file over the original
5) Load the character in Borderlands and it should start out in Arid Badlands because it does not recognize the location.
Note that if you are using Xbox and not PC or PS3 then you can't edit the savegame directly with your hex editor because it is inside an Xbox package file which has a file hash that will become invalid if you change parts of the file. To do so, you need to first convert the savegame to PS3 format using WillowTree# 2.2.1 or later, then edit the PS3 format savegame with your hex editor, then convert it back to Xbox with its original filename. To convert a file in WT# you load it, then select Change Save Format from the open file menu to change the format in the memory, and finally you click Save As to save the new file to disk either in a new location or over the original, but remember to make a backup of your original in case anything goes wrong.
Thank you very much! I solved my problem in a different way though:
1. Start game.
2. Open console, write "show", enter, close console.
3. Selecting my save, press enter.
4. Open console, write "open arid_…_p" (the Fyrestone map… I forgot the name)
5. It teleported me there, I ran to the next New-U station and that's how my current location was changed.
Now I can load my save the normal way again.