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.

40d:Memory hacking/v0.27.169.33b

From Dwarf Fortress Wiki
Jump to navigation Jump to search

Addresses seem to have shifted 0x1000 from v0.27.169.33a.

Addresses[edit]

Please pardon the redundancy; as this page is dead I am not going to take the time to format nicely.

pe_header_timestamp              == 473E7E49
map_data_loc                     == 01459568
map_x_count_loc                  == 01459580
map_y_count_loc                  == 01459584
map_z_count_loc                  == 01459588
race_data_vector_loc             == 0145AF48
dwarven_race_index_loc           == 01238AD0
main_creature_vector_loc         == 01417A38
another_creature_vector_loc      == 01417A48
yet_another_creature_vector_loc  == 01417A88
whathe_another_creature_vector_loc == 01417A18
number_of_dwarves_loc            == 00785070
initial_starting_points_loc      == 0078423F
art_defacement_malus_loc         == 0079EAEF
current_unit_focus_loc           == 00C30548
next_creature_id_loc             == 00C089F4
language_vector_loc              == 0145B068
starting_skills_limit_loc        == 00780FD4
starting_skills_increment_loc    == 00780EEF
starting_skills_decrement_loc    == 00781091

creature.happiness_level         == 00000504

Addresses[edit]

Name Size Type Notes Offset
Current unit focus 4 long Indexes into the full creature list. 0x00C30548
Map menu state 4 long The current state of the menu when viewing the map normally in Dwarf Fortress. 0x16 when in 'View Units' mode, other values unknown. 0x0123C65C
Dwarf race ID As in the race identifier in the creature structure. 0x01238AD0 (probably)
Creature vector 16 vector of pointers There are actually multiple creature vectors, but this has all of them. 0x01417A38
Another creature vector 16 vector of pointers This is the creature list that 'Current unit focus' indexes into, unlike previously stated. 0x01417A48
Yet another creature vector 16 vector of pointers This one is used when saving creatures when saving game. 0x01417A88
race data vec? 16 vector of pointers pointer to race vector (see 33d) 0x0145AF48


Game Structures[edit]

Creature Structures[edit]

Creature Structure[edit]

Total of 0x660 bytes for the structure.

Offset Size Type Name Notes
0x0000 28 string First name
0x001C 28 string Nickname
0x0038 28 Not a string, just a coincidence.
0x0054 14
0x0064 4
0x0068 2
0x006A 1 byte Seems to denote whether or not this creature has a custom nickname/profession name? Something like that.
0x006C 28 string Custom profession name
0x0088 2 short Type ID #1 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.
0x008A 2 short Type ID #2
0x008C 4 long Creature race 0xA6 is the dwarf default (this may be different if the user has a mod installed)
0x0090 2
0x0092 2
0x0094 2 short X position Current X coordinate of creature (0x00AC is some other X coordinate)
0x0096 2 short Y position Current Y coordinate of creature
0x0098 2 short Z position Current Z coordinate of creature
0x009A 2
0x009C 2
0x009E 2
0x00A0 4
0x00A4 2
0x00A8 4
0x00AC 2 short X coordinate
0x00AE 2 short Y coordinate
0x00B0 2 short Z coordinate
0x00B2 2
0x00B4 16 vector of shorts
0x00C4 16 vector of shorts
0x00D4 16 vector of shorts
0x00E4 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.
0x00E8 4 ulong Flags
Flag Description
0x8 1 << 3 Unknown, something to do with 0x0324.


0x80 1 << 7 Appears to be whether or not the creature is dead.
0x20000 1 << 17 Ready for slaughter.
0x00EC 1
0x00EE 2
0x00F0 2
0x00F2 1 byte Gender
Value Description
0 It
1 Male
2 Female
0x00F4 4 long Creature ID When a new creature is added to the creature vector at 0x01416A38, 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).
0x00F8 2
0x00FC 4
0x0100 4
0x0104 16 vector of shorts
0x0114 16 vector of shorts
0x0124 16 vector of shorts
0x0134 4
0x0138 16 vector of ...something...
0x01C4 1
0x01C5 1
0x01C8 4
0x01CC 4
0x01D0 4
0x01D4 2
0x01D6 2
0x01D8 2
0x01DC 4
0x01E0 2 + 2 + 2 + 4 + 4 Unknown structure.
0x01F0 4
0x01F4 4
0x01F8 2 short Strange mood 0xFFFF means no mood
0x01FA 2
0x01FC 4
0x0200 4
0x0204 4
0x0208 4
0x0210 36
0x0234 2
0x0236 2
0x0238 16 vector of pointers to 238 struct Possibly inventory?
0x0248 16 vector of longs Owned objects Each long is an index into the item vector.
0x0288 16 vector of longs
0x0298 4 think this is the account used for economy[sphr]
0x029C 4
0x02A0 4 pointer Appears to be a pointer to another creature.
0x02A4 4 pointer It's a pointer to something, don't know what yet.
0x02A8 2
0x02AA 2
0x02AC 2
0x02AE 2
0x02B0 2
0x02B4 4
0x02B8 16 vector of shorts
0x02C8 16 vector of shorts
0x02D8 16 vector of shorts
0x02E8 16 vector of shorts
0x02F8 2
0x02FC 4
0x0300 4
0x0304 16 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.
0x0314 16 vector of longs Bodypart related.
0x0328 2
0x032C 4
0x0330 4
0x0334 4
0x0338 4 long Bleeding level
0x033C 4
0x0340 4
0x0344 4
0x0348 4
0x034C 2
0x034E 2 short Nauseousness
0x0350 2 short Drowning
0x0352 2 short Stunned
0x0354 2
0x0356 2
0x0358 2 short Webbed How much a creature is webbed
0x035A 2 short Paralysis
0x035C 12
0x0368 2
0x036A 2
0x036C 4 long Pain level
0x0370 4 long Exhaustion
0x0374 4 long Hunger
0x0378 4 long Thirst
0x037C 4 long Drowsiness
0x0380 4
0x0384 16 vector of pointers to 384 struct
0x0394 16 vector of pointers to 394 struct
0x03A4 4
0x03A8 4
0x03AC 1
0x041C 4 Strength
Value Name
0 Nothing
1 Strong
2 Very Strong
3 Extremely Strong
4 Mighty
5 Ultra-Mighty
0x0420 4 Agility
Value Name
0 Nothing
1 Agile
2 Very Agile
3 Extremely Agile
4 Unbelievably Agile
5 Perfectly Agile
0x0424 4 Toughness
Value Name
0 Nothing
1 Tough
2 Very Tough
3 Extremely Tough
4 Unbelievably Tough
5 Superdwarvenly Tough
0x0428 16 vector of pointers to skill struct Skills
0x0438 16 vector of pointers to like struct Likes
0x0448 16 vector of pointers to 448 struct
0x0458 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.)
0x04C0 4
0x04C4 16 vector of pointers to 4C4 struct
0x04D4 16 vector of longs
0x04E4 16 vector of pointers to 4E4 struct
0x04F4 16 vector of pointers to 4F4 struct
0x0504 4 Happiness level 0 = miserable, >149 = ecstatic
0x0508 2
0x050C 16 vector of pointers to 50C struct
0x051C 16 vector of pointers to 51C struct
0x052C 16 vector of pointers to 52C struct
0x053C 16 vector of pointers to 53C struct
0x054C 2
0x0550 4
0x0554 4
0x0558 4
0x055C 16 vector of longs
0x056C 16 vector of longs
0x057C 16 vector of longs
0x058C 4
0x0590 2
0x0592 2
0x0594 2
0x0596 2
0x0598 2
0x059A 2
0x059C 4
0x05A0 16 vector of pointers to 5A0 struct Bodypart related.
0x05B0 4
0x05B4 60 trait struct Traits
0x05F0 4
0x05F4 1

Skill Structure[edit]

Offset Size Type Name Notes
0x0000 2 short Skill type
0x0004 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.
0x0008 4 long

Like Structure[edit]

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short
0x0004 2 short
0x0006 2 short
0x0008 2 short
0x000A 1 byte 'When possible'
0x000C 4 long

Trait Structure[edit]

Offset Size Type Name Notes
0x0000 2 short Nervousness Out of 100?
Value 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.
0x0002 2 short Rage Out of 100?
Value 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.
0x0004 2 short Depression Out of 100?
Value 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.
0x0006 2 short Self-consciousness Out of 100?
Value 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.
0x0008 2 short Urge Out of 100?
Value 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.
0x000A 2 short Stress Out of 100?
Value 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.
0x000C 2 short Friendly Out of 100?
Value 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.
0x000E 2 short Company Out of 100?
Value 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.
0x0010 2 short Leadership Out of 100?
Value 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.
0x0012 2 short Activeness Out of 100?
Value 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.
0x0014 2 short Thrillseeking Out of 100?
Value 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.
0x0016 2 short Optimism Out of 100?
Value 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.
0x0018 2 short Imagination Out of 100?
Value 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.
0x001A 2 short Artistic? Out of 100?
Value 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.
0x001C 2 short Emotion Out of 100?
Value 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.
0x001E 2 short Adventure Out of 100?
Value 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.
0x0020 2 short Thinking Out of 100?
Value 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.
0x0022 2 short Rebelliousness Out of 100?
Value 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.
0x0024 2 short Trusting Out of 100?
Value 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.
0x0026 2 short Liar Out of 100?
Value 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.
0x0028 2 short Helpfulness Out of 100?
Value 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.
0x002A 2 short Compromising Out of 100?
Value 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.
0x002C 2 short Modesty Out of 100?
Value 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.
0x002E 2 short Compassion Out of 100?
Value 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.
0x0030 2 short Confidence Out of 100?
Value 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
0x0032 2 short Organization Out of 100?
Value 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.
0x0034 2 short Lawfulness? Out of 100?
Value 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.
0x0036 2 short Excellence Out of 100?
Value 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.
0x0038 2 short Willpower Out of 100?
Value 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.
0x003A 2 short Cautiousness Out of 100?
Value 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[edit]

Offset Size Type Name Notes
0x0000 4 long
0x0004 2 short
0x0006 2 short
0x0008 4 long

384 Structure[edit]

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short
0x0004 2 short
0x0008 4 long
0x000C 2 short
0x000E 2 short

394 Structure[edit]

Offset Size Type Name Notes
0x0000 2 short ID
0x0004 4 long Value

448 Structure[edit]

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short
0x0004 2 short
0x0006 2 short
0x0008 2 short
0x000A 2 short
0x000C 4 long
0x0010 4 long

4C4 Structure[edit]

Offset Size Type Name Notes
0x0000 4 long
0x0004 4 long
0x0008 4 long
0x000C 4 long
0x0010 4 long
0x0014 4 long
0x0018 4 long
0x001C 2 short
0x0020 1 byte

4E4 Structure[edit]

Offset Size Type Name Notes
0x0000 2 short
0x0004 4 long
0x0008 2 short
0x000C 4 long

4F4 Structure[edit]

Offset Size Type Name Notes
0x0000 2 short
0x0004 4 long
0x0008 2 short
0x000C 4 long

50C Structure[edit]

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short
0x0004 4 long

51C Structure[edit]

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short
0x0004 2 short

52C Structure[edit]

Offset Size Type Name Notes
0x0000 4 long
0x0004 4 long
0x0008 4 long
0x000C 4 long

53C Structure[edit]

Offset Size Type Name Notes
0x0000 4 long
0x0004 4 long

5A0 Structure[edit]

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short