Jump to content

Welcome to Left 4 Modz
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!

Hex Editing Skyrim Dawnguard Items

Skyrim Dawnguard SAIO HEX Armor Ancient Falmer Hex Editing Modding Barrel Tutorial

  • Please log in to reply
30 replies to this topic

#1
SonicRaT

SonicRaT

    King of Bacon

  • Administrators
  • 207 posts
There seems to be a lot of confusion with how to properly hex editing the dawnguard items in, for those of you who decide to do things the hard way (rather than just using SAIO). In any event, lets explain:

Say you want to add the following item:

0200C815 - Ancient Falmer's Cuirass

However, if you have any experience hex editing already you know that Skyrim ID's are represented by 3 bytes, not 4.

So, when breaking down an inventory record, Skyrim looks at the following (Daedric Bow)

41 39 B5

It reads the upper most two bits (01 in this case) and looks it up in a table

00 - This means the rest of the ID points to an offset in the Form ID array
01 - Default Skyrim.esm, the normal ID follows in the rest of the 22 bits (This is how our example above is formed)
11 - This is created objects

Now, Dawnguard, is stored as offsets in the Form ID array, so all items look something like this:

00 0A 8F

The only way to know what this item refers to, is to look up that offset in the Form ID array, in this case it points to Dwarven Bolts (0200D099).

So, to correctly correlate the item you want to the proper ID you must look in both locations!



NOTE: SAIO CURRENTLY DOES NOT SUPPORT DAWNGUARD ITEMS OR SPELLS, WAIT FOR NEXT UPDATE!

#2
SonicRaT

SonicRaT

    King of Bacon

  • Administrators
  • 207 posts
So, say you have a barrel and you drop in a some gold (Gold ID in the barrel is 40 00 0F), and you want to replace this with a Dawnguard item. You must locate your Form ID array, then count then number of ID's in the array up until the item ID you want (assuming its even listed in the array).

ID's are 4 bytes long, so you can just count the bytes from the start of the array and divided by 4. Take this number, and write it in as your ID, such as 00 0A 29, and it'll now load the correct Dawnguard item stored at that offset.

#3
KMFDM

KMFDM
  • Premium
  • 22 posts
Hey Sonic. I'm MDFMKRULES9999 from gamefaqs. I'm still having trouble understanding the editing process.

from what i understand, i need to find the item ID in reverse in my file, and edit that? how do i search for that? nothing i've tried seems to work so i'm pretty much at a loss here. i only have a slight understanding of what you mean by offsets and arrays. all i know for sure is that i don't know what i'm doing =)

i opted towards downloading your editor, but it won't open on my computer for some reason, so this looks like my only viable option. shame too, since based on what i saw on the screenshots you posted, it looked amazing.

#4
SonicRaT

SonicRaT

    King of Bacon

  • Administrators
  • 207 posts
The hex method works only in changing one dawnguard item into another.

#5
KMFDM

KMFDM
  • Premium
  • 22 posts
that's fine. i imagine this means i can just use bolts, or the shellbug chitin (i gave myself 255 of them anyways) as the base item?

i just need to know how specifically to find the reversed ID. i'm clearly doing something wrong in my search method, because i simply can't pull this off. right now my search is set to 32 bit signed long. i'm pretty sure i need to switch it to something else, but i can't figure out what if i want to search for specific IDs.

#6
khaos198

khaos198
  • Members
  • 16 posts
When you go to search for the item you want to change, make sure you are adding the 02 at the end of it. It will make your like so much easier. I just put two of the vamp boots (armor) into a barrel searched deb50002 and I got only one instance. From there I made sure the amount of boots I put into the barrel was accurate because outside of the ID was 02. From there I changed the digits of the boots to those of an enhanced dwarven crossbow. Again doing the same thing as you were when you seached for the vamp boots. The original ID for the boots are found here: http://www.left4modz...nguard-id-list/

#7
SonicRaT

SonicRaT

    King of Bacon

  • Administrators
  • 207 posts
Yes, just invert the item ID's in the list, and search for those.

#8
KMFDM

KMFDM
  • Premium
  • 22 posts
i understand that i need to invert the ID, that's not the issue i'm having. the problem is that my editor doesn't let me search for that.

when i go to the search option in my editor, it's set to 32 bit signed long. i type in the value for what i'm looking for. for regular items i would type in "3294" as my search value since i was looking for the barrel itself with 3294 gold and a lockpick.
below it, the editor determines the hex. i have it set for little endian and to find all instances. the issue i have is simply that i cannot type in the ID in the value to even search for it because the editor does not allow me to.

what do i need to set the parameters to in order to search for the ID? it can't be 32 bit signed long, since it won't let me type in letters in for the value.

#9
SonicRaT

SonicRaT

    King of Bacon

  • Administrators
  • 207 posts
It simply needs to be a sequence of bytes, use something like HxD.

#10
KMFDM

KMFDM
  • Premium
  • 22 posts
what is HxD.

i'm going to try out SAIO instead since that seems easier, and with all due respect, I don't understand what you're telling me. Don't get me wrong, I really do appreciate the help, but my understanding of this stuff is minimal at best, and you definitely know far more than i ever will.

#11
SonicRaT

SonicRaT

    King of Bacon

  • Administrators
  • 207 posts
HxD is a hex editor. Basically, values are represented with bytes.

A Unsigned Long is 4 bytes (UInteger)
A Signed long is 4 bytes (Integer)

These are 32 bits.

Instead of searching for its 'decimal' value converted to it's hex value, its best to just search for the actual sequence of bytes (which are what the ID's are)

#12
Vampiros

Vampiros
  • Members
  • 8 posts
  • LocationUtah
@KMFDM What you need to do with Hex Workshop is change the search value from 32 bit unsigned to a Hex Value search so you can search for the Bytes. Then lets say you put a crossbow in the barrel or have a crossbow in your inventory and want to change that to an enhanced Dwarven Crossbow, in the search you need to enter the Id of the item, but in reverse (because the games coding is in little Endian) The ID for the crossbow is 02000801, so you need to search 01 08 00 02. You should find 1 instance. You would change the value of that to an enhanced Dwarven Crossbow, which is 0200f19f So you need to enter 9F F1 00 02. Then Save the Savegame.Data and Resign/Rehash, Load to the 360, when you check the barrel or your inventory, your crossbow will now be an enhanced Dwarven Crossbow. I would only recommend doing this on bolts if you are changing them into another ammunition, you are permenately changing the item from said item to the item you desire, not one item at a time.

#13
KMFDM

KMFDM
  • Premium
  • 22 posts
ok, but if i just put say, 1 bolt into the barrel at a time, i'd only be changing that 1 bolt right? or would i wind up with say, 200 copies of heal undead or something? i'll try it out again in a bit.

#14
khaos198

khaos198
  • Members
  • 16 posts
If you want to hex edit Dawngaurd DLC items, you need to change the item you are hex editing from to another Dawngaurd item. So yes if you did put in one Steel Bolt and changed it to a Dwarven bolt, you would only get one unless you also change the value of how many there are to FF or 255.

#15
Vampiros

Vampiros
  • Members
  • 8 posts
  • LocationUtah
@ Khaos198 Actually, Whether the item is in the barrel or in your inventory, ou are permanately changing the item in your save game. unlike the vanilla items where you use the 32 little endian search method to find your gold and your item next to it, the method me and sonic are talking about is directly changing the source item from what it is to the item you want, hence why I said if you use bolts, I would reccomend changing them to another ammunition, because when you find bolts in the world on dead dawnguard corpses the bolts you changed if you changed them to heal undead that is what you will find from now on instead of bolts. What I would reccomend for non ammunition items are any armor or potions that are DG related that you are not using like for me I used the Dawnguard Heavy Armor to make some spell books, If you go VL, would not recomend Dawnguard light armor as one of the minions will give you light armor for one their side quest, and all you will get is the item you changed it to.

Edit: You can change the Spell books back to bolts after you learn the spells, just hex them back to their original value.

#16
KMFDM

KMFDM
  • Premium
  • 22 posts
then... that doesn't sound like what i want to do then. i mainly wanted to get the rest of the items i couldn't get, like the aetherial shield and staff, the vamp jewelry, and moth priests clothing. doesn't sound like this is the way to get all these items then. me thinks SAIO is the better way to go.

#17
khaos198

khaos198
  • Members
  • 16 posts
Snag two of vampire boots search for those and you can change those into anything you want. Just make sure you have the armor boots ID if you are changing those.

#18
Vampiros

Vampiros
  • Members
  • 8 posts
  • LocationUtah
@Khaos With the Vampire Boots, their are two different Versions, you want to make sure you grab one with an armor rating and one with zero armor rating, then check the UESP for the ID of the Boots and inverse the IDS. the first two are always going to be 02 for the XX. so when running your byte search inverse it will be something like this XX XX XX 02 You will know you have found the right item because you will have one instance of the result and you will have several things ending in 02 around it.

#19
Major

Major

    Dumb arse

  • Premium
  • 16 posts
JUst invert it
so if it is ID # 0201234567 that you have and you want to change it to item with id# 0276543210
then because it is L.E. you would search your file (Savegame.dat) for the hex of 7654321020
and replace that with 0123456720.
When you are inverting it you are looking and inverting by the byte (01 23 45) so that in L.E. would be 54 32 10
so take the last byte of the id and invert it that is the 1st byte your looking or changing it to. sounds hard but in truth it is mega easy you just have to learn how to look at it. not as a whole number but as a collection of bytes. remember computors don't think like we do and we don't think like computors so there is a differece in lengo, YOU have to acount for

#20
Major

Major

    Dumb arse

  • Premium
  • 16 posts
OK so it was a slow day at work and i was bored so i took a go at thinking through the dawnguard array issue.
we know (Kudo's to Sonic Rat) that the pointer is # in the array of the location of the item.
also Skyrim is in Intel (L.E.) unsigned long (32bits)
also if you spent a while looking at it you know the item array is at the end of the file and the items start with the 1st 4 byte codes on the array and ED 03 00 00 00 00 00 00 seems to be the indicator for the array follow by a 8 bite number ( But becasue it is in l.e. the 0's come last) this i suspect is the number of items in the array 48 17 00 00 is what i had in my last file so it is inverted so it is really 00 00 17 48 that is 5960 bytes 4 bytes an item so it is 1490 items in the array
remember that and set it a side back to the formula for where it is in the array

so if i have a huge number as my pointer and i don't want to count all those bites/bytes i can just count the lines (off sets) so 32 bits means 16 bytes a line (off set)
so i took the id of the pointer and converted from hex we will call that x
that is how many bytes down the list in the array the item we want is at.
now we know that skyrim has 1 byte indactor and 3 byte ID codes but because it is in L.E. it is inverted so the indacator comes last (bb bb bb 02)
so we take x/4 and that is how many items down the list it is we will call that Y
so then i was thinking 32 bits a line 16 bytes
then i took Y and multiplyed it by 8 (8 bits per item 6 bits ID 1 bit Id) we will call that Z
Z is how many bits down in the array (Including the item) it is but to make it more manageable i want it in bytes ( i was doing all this by hand because it was more fun that way )
so Z/2 we will call that A
now we know 16 bytes a line(off set) so i want to see how many lines i go down so simple
A/2 rounded down
bamo thats how many lines down i need to go to find the item
so then i put them all togeather to do some quick alg. and make the simplfied formula
{[(x/4)8]/2}/16
{[(x/2)4]}/16
2x/16 round down and look at that off set and there you go you have your item...

now the impacations (Still need to test it out) if i wanted to add an item useing the barrel trick (overwright) i will need the pointer of the item or if it is not there add it to the array so i take how many whole numbers offsets it is located and multiply by 16 then /by 2 then add the extra bytes from the offset
{(P[16])/2}+S but wait even easier
8P+S convert that to hex and you have your pointer
but what if it is not in the array
well add it at the end of the array create a pointer from the location and remember that number i told you to set aside????
add 4 to it convert it back to LE and write it in and i suspect it should work... i will spend the next few weeks testing it out but i do not have another day off untill next week so thats when i will get a long time to work it out.
But from what i have seen almost all items from the DLC are in the array the trick is to get the array to not compress i have found that if you have a huge amount of an item ( i use gold) and put all but 2 in a container( any barrel/chest/body ) then back out then put one more and save as fast as you can hit the start button when exiting that the array will be open for you. Just make sure that it is all of what you own of that item ( no other gold stored anyware else ) and you leave one (Only one) in your invtory, and you don't use the same container twice.

doing this i have been able to change the array from one item to another and every thing changed over ( even the stuff stored in my house to my delight) i use hawk skulls from the dlc because they respawn really fast and have the best turn around. best of all is you don't even need to put any thing other then the gold(septems) in the container. Because you are only doing that to keep the array from compressing ( making it a real B###h to swap items ) after you have done this what ever was changed over seems to keep the pointer you changed the solution for and creates a new point for the item that was changed. The exception is the monthly (in game) reset where the array is created a new. (Also after some main/side quests aswell)
hope this helps

any advice would be greatly acepted and kudo's to all who help but most of all...
KUDO"S to Sonic Rat Becasue with out his info none of this would of been possable.
He was the 1st that i have seen so far that understood the array and his posts online have been what help me to understand it and make these equ's
thanks



Also tagged with Skyrim, Dawnguard, SAIO, HEX, Armor, Ancient Falmer, Hex Editing, Modding, Barrel, Tutorial

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users