v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Editing 40d:Memory hacking/v0.27.169.33a

Jump to navigation Jump to search

Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.

You are editing a page for an older version of Dwarf Fortress ("Main" is the current version, not "40d"). Please make sure you intend to do this. If you are here by mistake, see the current page instead.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
 
__TOC__
 
__TOC__
 
== Addresses ==
 
Please pardon the redundancy; as this page is dead I am not going to take the time to format nicely.
 
<pre>pe_header_timestamp              == 4729DA32
 
map_data_loc                    == 01458568
 
map_x_count_loc                  == 01458580
 
map_y_count_loc                  == 01458584
 
map_z_count_loc                  == 01458588
 
race_data_vector_loc            == 01459F48
 
dwarven_race_index_loc          == 01237AD0
 
main_creature_vector_loc        == 01416A38
 
another_creature_vector_loc      == 01416A48
 
yet_another_creature_vector_loc  == 01416A88
 
whathe_another_creature_vector_loc == 01416A18
 
number_of_dwarves_loc            == 0078420C
 
initial_starting_points_loc      == 007833DF
 
art_defacement_malus_loc        == 0079DC2F
 
current_unit_focus_loc          == 00C2F548
 
next_creature_id_loc            == 00C079F4
 
language_vector_loc              == 0145A068
 
 
starting_skills_limit_loc        == 00780174
 
starting_skills_increment_loc    == 0078008F
 
starting_skills_decrement_loc    == 00780231
 
 
creature.happiness_level        == 00000504</pre>
 
 
 
== Addresses ==
 
== Addresses ==
 
{| border="1" cellpadding="2" width="100%"
 
{| border="1" cellpadding="2" width="100%"
Line 40: Line 13:
 
| long
 
| long
 
| normally -1000 (18 FC FF FF)
 
| normally -1000 (18 FC FF FF)
| <code>0x0079DC2F</code>
+
| <code>0079DC2F</code>
 
 
|-
 
| Next creature ID
 
| 4
 
| long
 
|
 
| <code>0x00C079F4</code>
 
  
 
|-
 
|-
Line 54: Line 20:
 
| long
 
| long
 
| Indexes into the full creature list.
 
| Indexes into the full creature list.
| <code>0x00C2F548</code>
+
| <code>00C2F548</code>
 
   
 
   
 
|-
 
|-
Line 61: Line 27:
 
|  
 
|  
 
|  
 
|  
| <code>0x00C34378</code>
+
| <code>00C34378</code>
  
 
|-
 
|-
Line 68: Line 34:
 
| long
 
| long
 
| The current state of the menu when viewing the map normally in Dwarf Fortress. <code>0x16</code> when in 'View Units' mode, other values unknown.
 
| The current state of the menu when viewing the map normally in Dwarf Fortress. <code>0x16</code> when in 'View Units' mode, other values unknown.
| <code>0x0123B65C</code>
+
| <code>123B65C</code>
  
 
|-
 
|-
Line 75: Line 41:
 
|  
 
|  
 
| As in the race identifier in the [[#Creature Structure|creature structure]].
 
| As in the race identifier in the [[#Creature Structure|creature structure]].
| <code>0x01237AD0</code> (probably)
+
| <code>01237AD0</code> (probably)
 
   
 
   
|-
 
| Unknown vector
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers
 
| This could possibly be used for different creature groupings.  It's referenced when looking to see what state to use for creatures that are Friendly, Hostile, Merchants, etc on the unit screen.  The vector itself references the <code>0x1E0</code> data in the creature structure.
 
| <code>0x014169E8</code>
 
 
|-
 
| Whathe... another creature vector?
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers
 
| How many more ARE there?
 
| <code>0x01416A18</code>
 
 
 
|-
 
|-
 
| Creature vector
 
| Creature vector
| 16
+
|  
| [[Memory hacking#Vector|vector]] of pointers
+
| [[Memory hacking#Vector|vector]]
 
| There are actually multiple creature vectors, but this has all of them.
 
| There are actually multiple creature vectors, but this has all of them.
| <code>0x01416A38</code>
+
| <code>01416A38</code>
  
 
|-
 
|-
 
| Another creature vector
 
| Another creature vector
| 16
+
|  
| [[Memory hacking#Vector|vector]] of pointers
+
| [[Memory hacking#Vector|vector]]
 
| This is the creature list that 'Current unit focus' indexes into, unlike previously stated.
 
| This is the creature list that 'Current unit focus' indexes into, unlike previously stated.
| <code>0x01416A48</code>
+
| <code>01416A48</code>
 
 
|-
 
| Yet another creature vector
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers
 
| This one is used when saving creatures when saving game.
 
| <code>0x01416A88</code>
 
  
 
|}
 
|}
  
== Game Structures ==
+
== Creature Structure ==
=== Creature Structures ===
 
==== Creature Structure ====
 
Total of <code>0x660</code> bytes for the structure.
 
 
{| border="1" cellpadding="2" width="100%"
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="10%" | Offset
Line 126: Line 68:
  
 
|-
 
|-
| <code>0x0000</code>
+
| <code>0x0000</code> || 4   || || Vptr || Virtual function table pointer
| 28
 
| [[Memory hacking#String|string]]
 
| First name
 
|
 
 
 
|-
 
| <code>0x001C</code>
 
| 28
 
| [[Memory hacking#String|string]]
 
| Nickname
 
|
 
 
 
|-
 
| <code>0x0038</code>
 
| 28
 
|
 
|
 
| Not a string, just a coincidence.
 
 
 
|-
 
| <code>0x0054</code>
 
| 14
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0064</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0068</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x006A</code>
 
| 1
 
| byte
 
|
 
| Seems to denote whether or not this creature has a custom nickname/profession name? Something like that.
 
 
 
|-
 
| <code>0x006C</code>
 
| 28
 
| [[Memory hacking#String|string]]
 
| Custom profession name
 
|
 
 
 
|-
 
| <code>0x0088</code>
 
| 2
 
| short
 
| Type ID #1
 
| rowspan="2" | Dwarf types. 0x88 is the original dwarf type, 0x8a is the current dwarf type (I'm told Toady stores the original dwarf type for legends). The key is in the "Type ID" table, woefully incomplete.
 
 
 
|-
 
| <code>0x008A</code>
 
| 2
 
| short
 
| Type ID #2
 
 
 
|-
 
| <code>0x008C</code>
 
| 4
 
| long
 
| Creature race
 
| <code>0xA6</code> is the dwarf default (this may be different if the user has a mod installed)
 
 
 
|-
 
| <code>0x0090</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0092</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0094</code>
 
| 2
 
| short
 
| X position
 
| Current X coordinate of creature (0x00AC is some other X coordinate)
 
 
 
|-
 
| <code>0x0096</code>
 
| 2
 
| short
 
| Y position
 
| Current Y coordinate of creature
 
 
 
|-
 
| <code>0x0098</code>
 
| 2
 
| short
 
| Z position
 
| Current Z coordinate of creature
 
 
 
|-
 
| <code>0x009A</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x009C</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x009E</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x00A0</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x00A4</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x00A8</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x00AC</code>
 
| 2
 
| short
 
| X coordinate
 
|
 
 
 
|-
 
| <code>0x00AE</code>
 
| 2
 
| short
 
| Y coordinate
 
|
 
 
 
|-
 
| <code>0x00B0</code>
 
| 2
 
| short
 
| Z coordinate
 
|
 
 
 
|-
 
| <code>0x00B2</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x00B4</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of shorts
 
|
 
|
 
 
 
|-
 
| <code>0x00C4</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of shorts
 
|
 
|
 
 
 
|-
 
| <code>0x00D4</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of shorts
 
|
 
|
 
 
 
|-
 
| <code>0x00E4</code>
 
| 4
 
| ulong
 
| Flags
 
| (1 << 1) Unclear. It is set on dead things. Also, when a merchant caravan arrives, merchants and guards are added to the entity list slightly before they are added to the "u" list - during this period, this bit is set.
 
 
 
|-
 
| <code>0x00E8</code>
 
| 4
 
| ulong
 
| Flags
 
|
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" colspan="2" | Flag
 
! width="70%" | Description
 
 
 
|-
 
| width="15%" | <code>0x8</code>
 
| width="15%" | 1 << 3
 
| Unknown, something to do with <code>0x0324</code>.
 
 
 
 
 
|-
 
| <code>0x80</code>
 
| 1 << 7
 
| Appears to be whether or not the creature is dead.
 
 
 
|-
 
| <code>0x20000</code>
 
| 1 << 17
 
| Ready for slaughter.
 
 
 
|}
 
 
 
|-
 
| <code>0x00EC</code>
 
| 1
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x00EE</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x00F0</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x00F2</code>
 
| 1
 
| byte
 
| Gender
 
|
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 0
 
| It
 
 
 
|-
 
| 1
 
| Male
 
 
 
|-
 
| 2
 
| Female
 
 
 
|}
 
 
 
|-
 
| <code>0x00F4</code>
 
| 4
 
| long
 
| Creature ID
 
| When a new creature is added to the creature vector at <code>0x01416A38</code>, it is assigned the value of the next creature ID and the next creature ID value is then increased by 1. This value most likely does NOT persist between loading games (eg, saving then loading your game and creatures will have different IDs).
 
 
 
|-
 
| <code>0x00F8</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x00FC</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0100</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0104</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of shorts
 
|
 
|
 
 
 
|-
 
| <code>0x0114</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of shorts
 
|
 
|
 
 
 
|-
 
| <code>0x0124</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of shorts
 
|
 
|
 
 
 
|-
 
| <code>0x0134</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0138</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of ...something...
 
|
 
|
 
 
 
|-
 
| <code>0x01C4</code>
 
| 1
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x01C5</code>
 
| 1
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x01C8</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x01CC</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x01D0</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x01D4</code>
 
| 2
 
|
 
|
 
|
 
 
 
 
|-
 
|-
| <code>0x01D6</code>
+
| <code>0x0004</code> || 24  || [[Memory hacking#String|string]] || First name ||  
| 2
 
|  
 
|  
 
|  
 
 
 
|-
 
| <code>0x01D8</code>
 
| 2
 
|  
 
|  
 
|  
 
 
 
 
|-
 
|-
| <code>0x01DC</code>
+
| <code>0x0020</code> || 24  || [[Memory hacking#String|string]] || Nickname ||  
| 4
 
|  
 
|  
 
|  
 
 
 
 
|-
 
|-
| <code>0x01E0</code>
+
| <code>0x0070</code> || 24  || [[Memory hacking#String|string]]  || Custom profession name ||  
| 2 + 2 + 2 + 4 + 4
 
|  
 
|  
 
| Unknown structure.
 
 
 
 
|-
 
|-
| <code>0x01F0</code>
+
| <code>0x0088</code> || || || Type ID #1 || rowspan="2"| Dwarf types. 0x88 is the original dwarf type, 0x8a is the current dwarf type (I'm told Toady stores the original dwarf type for legends). The key is in the "Type ID" table, woefully incomplete.
| 4
 
|  
 
|  
 
|  
 
 
 
 
|-
 
|-
| <code>0x01F4</code>
+
| <code>0x008A</code> || || || Type ID #2
| 4
 
|  
 
|  
 
|  
 
 
 
 
|-
 
|-
| <code>0x01F8</code>
+
| <code>0x008C</code> || || || Creature Race || A6 is the dwarf default (this may be different if the user has a mod installed)
| 2
 
| short
 
| Strange mood
 
| 0xFFFF means no mood
 
 
 
 
|-
 
|-
| <code>0x01FA</code>
+
| <code>0x00AC</code> || 2   || || X Coordinate || Cells east of the west side
| 2
 
|  
 
|  
 
|  
 
 
 
 
|-
 
|-
| <code>0x01FC</code>
+
| <code>0x00AE</code> || || || Y Coordinate || Cells south of the north side
| 4
 
|  
 
|  
 
|  
 
 
 
 
|-
 
|-
| <code>0x0200</code>
+
| <code>0x00B0</code> || || || Z Coordinate || Levels up from the bottom level
| 4
 
|  
 
|  
 
|  
 
 
 
 
|-
 
|-
| <code>0x0204</code>
+
| <code>0x00E4</code> || 4   || || Flags || (1 << 1) Unclear. It is set on dead things. Also, when a merchant caravan arrives, merchants and guards are added to the entity list slightly before they are added to the "u" list - during this period, this bit is set.
| 4
 
|  
 
|  
 
|  
 
 
 
 
|-
 
|-
| <code>0x0208</code>
+
| <code>0x00E8</code> || 4   || || Flags || (1 << 7) Appears to be whether or not the creature is dead.
| 4
+
(1 << 17) if creature is ready for slaughter
|  
 
|  
 
|  
 
 
 
 
|-
 
|-
| <code>0x0210</code>
+
| <code>0x01F8</code> || || || Strange mood || 0xFFFF means no mood
| 36
 
|  
 
|  
 
|  
 
 
 
 
|-
 
|-
| <code>0x0234</code>
+
| <code>0x0304</code> || || [[Memory hacking#Vector|vector]] || Bodypart Health || A list to body part health, the list of ushorts, values range 0 to 15 from what i've seen. 15 being white, 0 being red.
| 2
 
|  
 
|  
 
|  
 
 
 
 
|-
 
|-
| <code>0x0236</code>
+
| <code>0x041C</code> || 4   || || Strength ||
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0238</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#238 Structure|238 struct]]
 
|
 
| Possibly inventory?
 
 
 
|-
 
| <code>0x0248</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of longs
 
| Owned objects
 
| Each long is an index into the item vector.
 
 
 
|-
 
| <code>0x0288</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of longs
 
|
 
|
 
 
 
|-
 
| <code>0x0298</code>
 
| 4
 
|  
 
|  
 
|  
 
 
 
|-
 
| <code>0x029C</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x02A0</code>
 
| 4
 
| pointer
 
|
 
| Appears to be a pointer to another creature.
 
 
 
|-
 
| <code>0x02A4</code>
 
| 4
 
| pointer
 
|
 
| It's a pointer to something, don't know what yet.
 
 
 
|-
 
| <code>0x02A8</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x02AA</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x02AC</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x02AE</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x02B0</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x02B4</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x02B8</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of shorts
 
|
 
|
 
 
 
|-
 
| <code>0x02C8</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of shorts
 
|
 
|
 
 
 
|-
 
| <code>0x02D8</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of shorts
 
|
 
|
 
 
 
|-
 
| <code>0x02E8</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of shorts
 
|
 
|
 
 
 
|-
 
| <code>0x02F8</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x02FC</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0300</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0304</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of shorts
 
| Bodypart Health
 
| A list to body part health, the list of ushorts, values range 0 to 15 from what i've seen. 15 being white, 0 being red.
 
 
 
|-
 
| <code>0x0314</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of longs
 
|
 
| Bodypart related.
 
 
 
|-
 
| <code>0x0328</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x032C</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0330</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0334</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0338</code>
 
| 4
 
| long
 
| Bleeding level
 
|
 
 
 
|-
 
| <code>0x033C</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0340</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0344</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0348</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x034C</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x034E</code>
 
| 2
 
| short
 
| Nauseousness
 
|
 
 
 
|-
 
| <code>0x0350</code>
 
| 2
 
| short
 
| Drowning
 
|
 
 
 
|-
 
| <code>0x0352</code>
 
| 2
 
| short
 
| Stunned
 
|
 
 
 
|-
 
| <code>0x0354</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0356</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0358</code>
 
| 2
 
| short
 
| Webbed
 
| How much a creature is webbed
 
 
 
|-
 
| <code>0x035A</code>
 
| 2
 
| short
 
| Paralysis
 
|
 
 
 
|-
 
| <code>0x035C</code>
 
| 12
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0368</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x036A</code>
 
| 2
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x036C</code>
 
| 4
 
| long
 
| Pain level
 
|
 
 
 
|-
 
| <code>0x0370</code>
 
| 4
 
| long
 
| Exhaustion
 
|
 
 
 
|-
 
| <code>0x0374</code>
 
| 4
 
| long
 
| Hunger
 
|
 
 
 
|-
 
| <code>0x0378</code>
 
| 4
 
| long
 
| Thirst
 
|
 
 
 
|-
 
| <code>0x037C</code>
 
| 4
 
| long
 
| Drowsiness
 
|
 
 
 
|-
 
| <code>0x0380</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x0384</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#384 Structure|384 struct]]
 
|
 
|
 
 
 
|-
 
| <code>0x0394</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#394 Structure|394 struct]]
 
|
 
|
 
 
 
|-
 
| <code>0x03A4</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x03A8</code>
 
| 4
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x03AC</code>
 
| 1
 
|
 
|
 
|
 
 
 
|-
 
| <code>0x041C</code>
 
| 4
 
|
 
| Strength
 
|  
 
 
{| border="1" cellpadding="2" width="50%"
 
{| border="1" cellpadding="2" width="50%"
 
! width="20%" | Value
 
! width="20%" | Value
 
! width="80%" | Name
 
! width="80%" | Name
 +
 
|-
 
|-
 
| 0 || Nothing
 
| 0 || Nothing
 +
 
|-
 
|-
 
| 1 || Strong
 
| 1 || Strong
 +
 
|-
 
|-
 
| 2 || Very Strong
 
| 2 || Very Strong
 +
 
|-
 
|-
 
| 3 || Extremely Strong
 
| 3 || Extremely Strong
 +
 
|-
 
|-
 
| 4 || Mighty
 
| 4 || Mighty
 +
 
|-
 
|-
 
| 5 || Ultra-Mighty
 
| 5 || Ultra-Mighty
 +
 
|}
 
|}
  
 
|-
 
|-
| <code>0x0420</code>
+
| <code>0x0420</code> || 4   || || Agility ||
| 4
 
|
 
| Agility
 
|
 
 
{| border="1" cellpadding="2" width="50%"
 
{| border="1" cellpadding="2" width="50%"
 
! width="20%" | Value
 
! width="20%" | Value
 
! width="80%" | Name
 
! width="80%" | Name
 +
 
|-
 
|-
 
| 0 || Nothing
 
| 0 || Nothing
 +
 
|-
 
|-
 
| 1 || Agile
 
| 1 || Agile
 +
 
|-
 
|-
 
| 2 || Very Agile
 
| 2 || Very Agile
 +
 
|-
 
|-
 
| 3 || Extremely Agile
 
| 3 || Extremely Agile
 +
 
|-
 
|-
 
| 4 || Unbelievably Agile
 
| 4 || Unbelievably Agile
 +
 
|-
 
|-
 
| 5 || Perfectly Agile
 
| 5 || Perfectly Agile
 +
 
|}
 
|}
  
 
|-
 
|-
| <code>0x0424</code>
+
| <code>0x0424</code> || 4   || || Toughness ||
| 4
 
|
 
| Toughness
 
|
 
 
{| border="1" cellpadding="2" width="50%"
 
{| border="1" cellpadding="2" width="50%"
 
! width="20%" | Value
 
! width="20%" | Value
 
! width="80%" | Name
 
! width="80%" | Name
 +
 
|-
 
|-
 
| 0 || Nothing
 
| 0 || Nothing
 +
 
|-
 
|-
 
| 1 || Tough
 
| 1 || Tough
 +
 
|-
 
|-
 
| 2 || Very Tough
 
| 2 || Very Tough
 +
 
|-
 
|-
 
| 3 || Extremely Tough
 
| 3 || Extremely Tough
 +
 
|-
 
|-
 
| 4 || Unbelievably Tough
 
| 4 || Unbelievably Tough
 +
 
|-
 
|-
 
| 5 || Superdwarvenly Tough
 
| 5 || Superdwarvenly Tough
|}
 
 
|-
 
| <code>0x0428</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#Skill Structure|skill struct]]
 
| Skills
 
|
 
 
|-
 
| <code>0x0438</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#Like Structure|like struct]]
 
| Likes
 
|
 
 
|-
 
| <code>0x0448</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#448 Structure|448 struct]]
 
|
 
|
 
 
|-
 
| <code>0x0458</code>
 
| 102
 
| bytes
 
| Labor preferences
 
| 102 1 byte values, corresponding to the profession list. Mostly bools, with notable exceptions of shieldtype,armortype, and weaponnum. "Weaponnum" may be the number of weapons wielded (i.e. 2 for a dual-wielding character.)
 
 
|-
 
| <code>0x04C0</code>
 
| 4
 
|
 
|
 
|
 
 
|-
 
| <code>0x04C4</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#4C4 Structure|4C4 struct]]
 
|
 
|
 
 
|-
 
| <code>0x04D4</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of longs
 
|
 
|
 
 
|-
 
| <code>0x04E4</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#4E4 Structure|4E4 struct]]
 
|
 
|
 
 
|-
 
| <code>0x04F4</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#4F4 Structure|4F4 struct]]
 
|
 
|
 
 
|-
 
| <code>0x0504</code>
 
| 4
 
|
 
| Happiness level
 
| 0 = miserable, >149 = ecstatic
 
 
|-
 
| <code>0x0508</code>
 
| 2
 
|
 
|
 
|
 
 
|-
 
| <code>0x050C</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#50C Structure|50C struct]]
 
|
 
|
 
 
|-
 
| <code>0x051C</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#51C Structure|51C struct]]
 
|
 
|
 
 
|-
 
| <code>0x052C</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#52C Structure|52C struct]]
 
|
 
|
 
 
|-
 
| <code>0x053C</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#53C Structure|53C struct]]
 
|
 
|
 
 
|-
 
| <code>0x054C</code>
 
| 2
 
|
 
|
 
|
 
 
|-
 
| <code>0x0550</code>
 
| 4
 
|
 
|
 
|
 
 
|-
 
| <code>0x0554</code>
 
| 4
 
|
 
|
 
|
 
 
|-
 
| <code>0x0558</code>
 
| 4
 
|
 
|
 
|
 
 
|-
 
| <code>0x055C</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of longs
 
|
 
|
 
 
|-
 
| <code>0x056C</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of longs
 
|
 
|
 
 
|-
 
| <code>0x057C</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of longs
 
|
 
|
 
 
|-
 
| <code>0x058C</code>
 
| 4
 
|
 
|
 
|
 
 
|-
 
| <code>0x0590</code>
 
| 2
 
|
 
|
 
|
 
 
|-
 
| <code>0x0592</code>
 
| 2
 
|
 
|
 
|
 
 
|-
 
| <code>0x0594</code>
 
| 2
 
|
 
|
 
|
 
 
|-
 
| <code>0x0596</code>
 
| 2
 
|
 
|
 
|
 
 
|-
 
| <code>0x0598</code>
 
| 2
 
|
 
|
 
|
 
 
|-
 
| <code>0x059A</code>
 
| 2
 
|
 
|
 
|
 
 
|-
 
| <code>0x059C</code>
 
| 4
 
|
 
|
 
|
 
 
|-
 
| <code>0x05A0</code>
 
| 16
 
| [[Memory hacking#Vector|vector]] of pointers to [[#5A0 Structure|5A0 struct]]
 
|
 
| Bodypart related.
 
 
|-
 
| <code>0x05B0</code>
 
| 4
 
|
 
|
 
|
 
 
|-
 
| <code>0x05B4</code>
 
| 60
 
| [[#Trait Structure|trait struct]]
 
| Traits
 
|
 
 
|-
 
| <code>0x05F0</code>
 
| 4
 
|
 
|
 
|
 
 
|-
 
| <code>0x05F4</code>
 
| 1
 
|
 
|
 
|
 
  
 
|}
 
|}
 
==== Skill Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
  
 
|-
 
|-
| <code>0x0000</code>
+
| <code>0x042C</code> || 4  || || Skill Start Ptr || Start of skill list
| 2
 
| short
 
| Skill type
 
|  
 
 
 
 
|-
 
|-
| <code>0x0004</code>
+
| <code>0x0430</code> || 4   || || Skill End Ptr || End of skill list
| 4
 
| long
 
| Skill rating
 
| The upper word is the actual rating (0:Dabbling to 15:Legendary).  The lower word is likely the experience in that skill, akin to how you see it in Adventure Mode whereby a level 10 skill requires 1000 points of experience to advance.
 
 
 
 
|-
 
|-
| <code>0x0008</code>
+
| <code>0x0458</code> || 102 || || Labor preferences || 102 1 byte values, corresponding to the profession list. Mostly bools, with notable exceptions of shieldtype,armortype, and weaponnum. I have No idea what the last one means.
| 4
 
| long
 
|  
 
|  
 
 
 
|}
 
 
 
==== Like Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
 
|-
 
|-
| <code>0x0000</code>
+
| <code>0x0504</code> || 4   || || Happiness level || 0 = miserable, >149 = ecstatic
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0002</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0006</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0008</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x000A</code>
 
| 1
 
| byte
 
| 'When possible'
 
|
 
 
 
|-
 
| <code>0x000C</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|}
 
 
 
==== Trait Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 2
 
| short
 
| Nervousness
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is a nervous wreck.
 
 
 
|-
 
| 76 - 90
 
| Is always tense and jittery.
 
 
 
|-
 
| 61 - 75
 
| Is often nervous.
 
 
 
|-
 
| 25 - 60
 
| Has a calm demeanor.
 
 
 
|-
 
| 10 - 24
 
| Has a very calm demeanor.
 
 
 
|-
 
| 0 - 9
 
| Has an incredibly calm demeanor.
 
 
 
|}
 
 
 
|-
 
| <code>0x0002</code>
 
| 2
 
| short
 
| Rage
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is in a constant state of internal rage.
 
 
 
|-
 
| 76 - 90
 
| Is very quick to anger.
 
 
 
|-
 
| 61 - 75
 
| Is quick to anger.
 
 
 
|-
 
| 25 - 60
 
| Is slow to anger.
 
 
 
|-
 
| 10 - 24
 
| Is very slow to anger.
 
 
 
|-
 
| 0 - 9
 
| Never becomes angry.
 
 
 
|}
 
 
 
|-
 
| <code>0x0004</code>
 
| 2
 
| short
 
| Depression
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is frequently depressed.
 
 
 
|-
 
| 76 - 90
 
| Is often sad and dejected.
 
 
 
|-
 
| 61 - 75
 
| Often feels discouraged.
 
 
 
|-
 
| 25 - 60
 
| Rarely feels discouraged.
 
 
 
|-
 
| 10 - 24
 
| Almost never feels discouraged.
 
 
 
|-
 
| 0 - 9
 
| Never feels discouraged.
 
|}
 
 
 
|-
 
| <code>0x0006</code>
 
| 2
 
| short
 
| Self-consciousness
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is socially crippled by thoughts that everyone is watching and judging it/him/her.
 
 
 
|-
 
| 76 - 90
 
| Is concerned about rejection and ridicule.
 
 
 
|-
 
| 61 - 75
 
| Is self-conscious.
 
 
 
|-
 
| 25 - 60
 
| Is comfortable in social situations.
 
 
 
|-
 
| 10 - 24
 
| Is very comfortable in social situations.
 
 
 
|-
 
| 0 - 9
 
| Is absolutely unfazed by the opinions of others.
 
|}
 
 
 
|-
 
| <code>0x0008</code>
 
| 2
 
| short
 
| Urge
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is ruled by irresistible cravings and urges.
 
 
 
|-
 
| 76 - 90
 
| Feels strong urges and seeks short-term rewards.
 
 
 
|-
 
| 61 - 75
 
| Occassionally overindulges.
 
 
 
|-
 
| 25 - 60
 
| Doesn't often experience strong cravings or urges.
 
 
 
|-
 
| 10 - 24
 
| Only rarely feels strong cravings or urges.
 
 
 
|-
 
| 0 - 9
 
| Never feels tempted to overindulge in anything.
 
|}
 
 
 
|-
 
| <code>0x000A</code>
 
| 2
 
| short
 
| Stress
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Becomes completely helpless in stressful situations.
 
 
 
|-
 
| 76 - 90
 
| Cracks easily under pressure.
 
 
 
|-
 
| 61 - 75
 
| Doesn't handle stress well.
 
 
 
|-
 
| 25 - 60
 
| Can handle stress.
 
 
 
|-
 
| 10 - 24
 
| Is confident under pressure.
 
 
 
|-
 
| 0 - 9
 
| Is impervious to the effects of stress.
 
|}
 
 
 
|-
 
| <code>0x000C</code>
 
| 2
 
| short
 
| Friendly
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Genuinely likes others and openly expresses positive feelings toward them.
 
 
 
|-
 
| 76 - 90
 
| Makes friends quickly.
 
 
 
|-
 
| 61 - 75
 
| Is very friendly.
 
 
 
|-
 
| 25 - 60
 
| Is somewhat reserved.
 
 
 
|-
 
| 10 - 24
 
| Is very distant and reserved.
 
 
 
|-
 
| 0 - 9
 
| Does not actively seek friendships and is incredibly distant and reserved.
 
|}
 
 
 
|-
 
| <code>0x000E</code>
 
| 2
 
| short
 
| Company
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Truly treasures the company of others.
 
 
 
|-
 
| 76 - 90
 
| Enjoys being in crowds.
 
 
 
|-
 
| 61 - 75
 
| Enjoys the company of others.
 
 
 
|-
 
| 25 - 60
 
| Tends to avoid crowds.
 
 
 
|-
 
| 10 - 24
 
| Prefers to be alone.
 
 
 
|-
 
| 0 - 9
 
| Considers spending time alone much more important than associating with others.
 
|}
 
 
 
|-
 
| <code>0x0010</code>
 
| 2
 
| short
 
| Leadership
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Loves to take charge and direct activities.
 
 
 
|-
 
| 76 - 90
 
| Is very assertive.
 
 
 
|-
 
| 61 - 75
 
| Is assertive.
 
 
 
|-
 
| 25 - 60
 
| Is unassertive.
 
 
 
|-
 
| 10 - 24
 
| Prefers that others handle the leadership roles.
 
 
 
|-
 
| 0 - 9
 
| Never speaks out or attempts to direct activities.
 
|}
 
 
 
|-
 
| <code>0x0012</code>
 
| 2
 
| short
 
| Activeness
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is constantly active and energetic.
 
 
 
|-
 
| 76 - 90
 
| Is very energetic and active.
 
 
 
|-
 
| 61 - 75
 
| Is very active.
 
 
 
|-
 
| 25 - 60
 
| Is relaxed.
 
 
 
|-
 
| 10 - 24
 
| Lives life at a leisurely pace.
 
 
 
|-
 
| 0 - 9
 
| Can't be bothered with frantic, fast-paced living.
 
|}
 
 
 
|-
 
| <code>0x0014</code>
 
| 2
 
| short
 
| Thrillseeking
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Lives for risk and excitement.
 
 
 
|-
 
| 76 - 90
 
| Is a risk-taker and a thrill-seeker.
 
 
 
|-
 
| 61 - 75
 
| Loves a good thrill.
 
 
 
|-
 
| 25 - 60
 
| Is not a risk-taker.
 
 
 
|-
 
| 10 - 24
 
| Doesn't need thrills or risks in life.
 
 
 
|-
 
| 0 - 9
 
| Is entirely adverse to risk and excitement.
 
|}
 
 
 
|-
 
| <code>0x0016</code>
 
| 2
 
| short
 
| Optimism
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Often feels filled with joy.
 
 
 
|-
 
| 76 - 90
 
| Can be very happy and optimistic.
 
 
 
|-
 
| 61 - 75
 
| Is often cheerful.
 
 
 
|-
 
| 25 - 60
 
| Is rarely happy or enthusiastic.
 
 
 
|-
 
| 10 - 24
 
| Is a pessimist.
 
 
 
|-
 
| 0 - 9
 
| Is never optimistic or enthusiastic about anything.
 
|}
 
 
 
|-
 
| <code>0x0018</code>
 
| 2
 
| short
 
| Imagination
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is bored by reality and has a wonderful imagination.
 
 
 
|-
 
| 76 - 90
 
| Is incredibly creative.
 
 
 
|-
 
| 61 - 75
 
| Has a fertile imagination.
 
 
 
|-
 
| 25 - 60
 
| Isn't given to flights of fancy.
 
 
 
|-
 
| 10 - 24
 
| Is grounded in reality.
 
 
 
|-
 
| 0 - 9
 
| Is interested only in facts and the real world.
 
|}
 
 
 
|-
 
| <code>0x001A</code>
 
| 2
 
| short
 
| Artistic?
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Can easily become absorbed in art and the beauty of the natural world.
 
 
 
|-
 
| 76 - 90
 
| Greatly appreciates art and natural beauty.
 
 
 
|-
 
| 61 - 75
 
| Appreciates art and natural beauty.
 
 
 
|-
 
| 25 - 60
 
| Does not have a great aesthetic sensitivity.
 
 
 
|-
 
| 10 - 24
 
| Is not interested in art.
 
 
 
|-
 
| 0 - 9
 
| Is completely uninterested in art.
 
|}
 
 
 
|-
 
| <code>0x001C</code>
 
| 2
 
| short
 
| Emotion
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Has a profound understanding of its/his/her own emotions.
 
 
 
|-
 
| 76 - 90
 
| Has a great awareness of its/his/her own emotions.
 
 
 
|-
 
| 61 - 75
 
| Has a good awareness of its/his/her own emotions.
 
 
 
|-
 
| 25 - 60
 
| Tends not to openly express emotions.
 
 
 
|-
 
| 10 - 24
 
| Is mostly unaware of its/his/her own emotions and rarely expresses them.
 
 
 
|-
 
| 0 - 9
 
| Does not display its/his/her own emotions and has no awareness of them.
 
|}
 
 
 
|-
 
| <code>0x001E</code>
 
| 2
 
| short
 
| Adventure
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is highly adventurous and loves fresh experiences.
 
 
 
|-
 
| 76 - 90
 
| Is eager for new experiences.
 
 
 
|-
 
| 61 - 75
 
| Likes to try new things.
 
 
 
|-
 
| 25 - 60
 
| Prefers familiar routines.
 
 
 
|-
 
| 10 - 24
 
| Is uncomfortable with change.
 
 
 
|-
 
| 0 - 9
 
| Is resistant to change.
 
|}
 
 
 
|-
 
| <code>0x0020</code>
 
| 2
 
| short
 
| Thinking
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is entranced by riddles and puzzles and loves to debate issues and ideas.
 
 
 
|-
 
| 76 - 90
 
| Loves new and fresh ideas.
 
 
 
|-
 
| 61 - 75
 
| Is open-minded to new ideas.
 
 
 
|-
 
| 25 - 60
 
| Dislikes intellectual discussions.
 
 
 
|-
 
| 10 - 24
 
| Regards intellectual exercises as a waste of energy.
 
 
 
|-
 
| 0 - 9
 
| Is completely uninterested in ideas and debates over intellectual issues.
 
|}
 
 
 
|-
 
| <code>0x0022</code>
 
| 2
 
| short
 
| Rebelliousness
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Revels in chaos and disorder.
 
 
 
|-
 
| 76 - 90
 
| Loves to defy convention.
 
 
 
|-
 
| 61 - 75
 
| Is put off by authority and tradition.
 
 
 
|-
 
| 25 - 60
 
| Admires tradition.
 
 
 
|-
 
| 10 - 24
 
| Prefers stability and security to ambiguity and disorder.
 
 
 
|-
 
| 0 - 9
 
| Is an ardent believer in convention and traditional society.
 
|}
 
 
 
|-
 
| <code>0x0024</code>
 
| 2
 
| short
 
| Trusting
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is naturally trustful of everybody.
 
 
 
|-
 
| 76 - 90
 
| Is very trusting.
 
 
 
|-
 
| 61 - 75
 
| Is trusting.
 
 
 
|-
 
| 25 - 60
 
| Is slow to trust others.
 
 
 
|-
 
| 10 - 24
 
| Does not trust others.
 
 
 
|-
 
| 0 - 9
 
| Sees others as selfish and conniving.
 
|}
 
 
 
|-
 
| <code>0x0026</code>
 
| 2
 
| short
 
| Liar
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is incredibly frank and candid in dealings with others.
 
 
 
|-
 
| 76 - 90
 
| Is very straightforward with others.
 
 
 
|-
 
| 61 - 75
 
| Is candid and sincere in dealings with others.
 
 
 
|-
 
| 25 - 60
 
| Is guarded in relationships with others.
 
 
 
|-
 
| 10 - 24
 
| Is not straightforward when dealing with others.
 
 
 
|-
 
| 0 - 9
 
| Believes that some deception is necessary in relationships with others.
 
|}
 
 
 
|-
 
| <code>0x0028</code>
 
| 2
 
| short
 
| Helpfulness
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is truly fulfilled by assisting those in need.
 
 
 
|-
 
| 76 - 90
 
| Finds helping others very rewarding.
 
 
 
|-
 
| 61 - 75
 
| Finds helping others rewarding.
 
 
 
|-
 
| 25 - 60
 
| Does not go out of its/his/her way to help others.
 
 
 
|-
 
| 10 - 24
 
| Dislikes helping others.
 
 
 
|-
 
| 0 - 9
 
| Views helping others as an imposition on  own needs to get along with others.
 
|}
 
 
 
|-
 
| <code>0x002A</code>
 
| 2
 
| short
 
| Compromising
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Sacrifices its/his/her own needs to get along with others.
 
 
 
|-
 
| 76 - 90
 
| Dislikes confrontations.
 
 
 
|-
 
| 61 - 75
 
| Is willing to compromise with others.
 
 
 
|-
 
| 25 - 60
 
| Doesn't like to compromise with others.
 
 
 
|-
 
| 10 - 24
 
| Would rather intimidate others than compromise with them.
 
 
 
|-
 
| 0 - 9
 
| Would never deny its/his/her own needs just to compromise with somebody else.
 
|}
 
 
 
|-
 
| <code>0x002C</code>
 
| 2
 
| short
 
| Modesty
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Would never claim to be better than somebody else.
 
 
 
|-
 
| 76 - 90
 
| Finds immodesty distasteful.
 
 
 
|-
 
| 61 - 75
 
| Is modest.
 
 
 
|-
 
| 25 - 60
 
| Is immodest.
 
 
 
|-
 
| 10 - 24
 
| Is very willing to compare itself/himself/herself favorably with others.
 
 
 
|-
 
| 0 - 9
 
| Would never shy away from an opportunity to say it/he/she is better than somebody else.
 
|}
 
 
 
|-
 
| <code>0x002E</code>
 
| 2
 
| short
 
| Compassion
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Is incredibly compassionate and feels the pain of others.
 
 
 
|-
 
| 76 - 90
 
| Is easily moved to pity.
 
 
 
|-
 
| 61 - 75
 
| Is compassionate.
 
 
 
|-
 
| 25 - 60
 
| Is not easily moved to pity.
 
 
 
|-
 
| 10 - 24
 
| Is not affected by the suffering of others.
 
 
 
|-
 
| 0 - 9
 
| Would never let an objective judgement be tempered by mercy or pity.
 
|}
 
 
 
|-
 
| <code>0x0030</code>
 
| 2
 
| short
 
| Confidence
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| is incredibly confident
 
 
 
|-
 
| 76 - 90
 
| is very confident
 
 
 
|-
 
| 61 - 75
 
| is confident
 
 
 
|-
 
| 25 - 60
 
| lacks confidence
 
 
 
|-
 
| 10 - 24
 
| does not feel effective in life
 
 
 
|-
 
| 0 - 9
 
| always feels as if it/he/she is not in control of its/his/her life
 
|}
 
 
 
|-
 
| <code>0x0032</code>
 
| 2
 
| short
 
| Organization
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Loves to make lists and keep schedules.
 
 
 
|-
 
| 76 - 90
 
| Tries to live a well-organized life.
 
 
 
|-
 
| 61 - 75
 
| Is organized.
 
 
 
|-
 
| 25 - 60
 
| Is disorganized.
 
 
 
|-
 
| 10 - 24
 
| Is very disorganized.
 
 
 
|-
 
| 0 - 9
 
| Is completely disorganized.
 
|}
 
 
 
|-
 
| <code>0x0034</code>
 
| 2
 
| short
 
| Lawfulness?
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Has a profound sense of duty and obligation.
 
 
 
|-
 
| 76 - 90
 
| Has a strong sense of duty.
 
 
 
|-
 
| 61 - 75
 
| Has a sense of duty.
 
 
 
|-
 
| 25 - 60
 
| Finds rules confining.
 
 
 
|-
 
| 10 - 24
 
| Dislikes contracts and regulations.
 
 
 
|-
 
| 0 - 9
 
| Hates rules, contracts and other confining elements in its/his/her life.
 
|}
 
 
 
|-
 
| <code>0x0036</code>
 
| 2
 
| short
 
| Excellence
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Constantly strives for perfection.
 
 
 
|-
 
| 76 - 90
 
| Thinks it is incredibly important to strive for excellence.
 
 
 
|-
 
| 61 - 75
 
| Strives for excellence.
 
 
 
|-
 
| 25 - 60
 
| Doesn't go out of its/his/her way to do more work than necessary.
 
 
 
|-
 
| 10 - 24
 
| Very rarely does more work than necessary.
 
 
 
|-
 
| 0 - 9
 
| Does the bare minimum necessary to accomplish the task at hand.
 
|}
 
 
 
|-
 
| <code>0x0038</code>
 
| 2
 
| short
 
| Willpower
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| Will persist in the face of any difficulty until the task is complete.
 
 
 
|-
 
| 76 - 90
 
| Possesses great willpower.
 
 
 
|-
 
| 61 - 75
 
| Is self-disciplined.
 
 
 
|-
 
| 25 - 60
 
| Is occasionally given to procrastination.
 
 
 
|-
 
| 10 - 24
 
| Has very little self-discipline.
 
 
 
|-
 
| 0 - 9
 
| Rarely completes tasks and is often overcome by distractions.
 
|}
 
 
 
|-
 
| <code>0x003A</code>
 
| 2
 
| short
 
| Cautiousness
 
| Out of 100?
 
{| border="1" cellpadding="2" width="100%"
 
! width="30%" | Value
 
! width="70%" | Description
 
 
 
|-
 
| 91 - 100
 
| thinks through every alternatives and their consequences before acting
 
 
 
|-
 
| 76 - 90
 
| is extremely cautious
 
 
 
|-
 
| 61 - 75
 
| takes time when making decisions
 
 
 
|-
 
| 25 - 60
 
| often does the first thing that comes to mind
 
 
 
|-
 
| 10 - 24
 
| acts impulsively
 
 
 
|-
 
| 0 - 9
 
| always acts without considering alternatives or thinking through possibilities
 
|}
 
 
 
|}
 
 
 
==== 238 Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0006</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0008</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|}
 
 
 
==== 384 Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0002</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0008</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x000C</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x000E</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|}
 
 
 
==== 394 Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 2
 
| short
 
| ID
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 4
 
| long
 
| Value
 
|
 
 
 
|}
 
 
 
==== 448 Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0002</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0006</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0008</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x000A</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x000C</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0010</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|}
 
 
 
==== 4C4 Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0008</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x000C</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0010</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0014</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0018</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x001C</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0020</code>
 
| 1
 
| byte
 
|
 
|
 
 
 
|}
 
 
 
==== 4E4 Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0008</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x000C</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|}
 
 
 
==== 4F4 Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0008</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x000C</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|}
 
 
 
==== 50C Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0002</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|}
 
 
 
==== 51C Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0002</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|}
 
 
 
==== 52C Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0008</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x000C</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|}
 
 
 
==== 53C Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|-
 
| <code>0x0004</code>
 
| 4
 
| long
 
|
 
|
 
 
 
|}
 
 
 
==== 5A0 Structure ====
 
{| border="1" cellpadding="2" width="100%"
 
! width="10%" | Offset
 
! width="5%" | Size
 
! width="10%" | Type
 
! width="20%" | Name
 
! width="55%" | Notes
 
 
 
|-
 
| <code>0x0000</code>
 
| 2
 
| short
 
|
 
|
 
 
 
|-
 
| <code>0x0002</code>
 
| 2
 
| short
 
|
 
|
 
 
 
 
|}
 
|}
[[Category:Hacking]]
 

Please note that all contributions to Dwarf Fortress Wiki are considered to be released under the GFDL & MIT (see Dwarf Fortress Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)