Datasheet¶
Base File Index equals to Start block 0x2c0 (BFI)
Headers format and structures¶
Note
Information about data type you can access with official python documentation
Offset (from the begging) | Size/Type | Explain | Value |
---|---|---|---|
File General Header | |||
0x00 | 4 bytes c_char_p | Probably file format container | BND4 |
0x04 | 4 bytes c_uint32 | could be a separator | x00x00x00x00 |
0x08 | 4 bytes c_uint32 | Unknown data | |
0x0c | 4 bytes c_uint32 | Could be real block data stored in whole file | hex: 0xB dec: 11 |
0x10 | 4 bytes c_uint32 | Unknown data | |
0x14 | 4 bytes c_uint32 | could be a separator | x00x00x00x00 |
0x18 | 8 bytes c_char_p |
|
string: 00000001 |
0x20 | 4 bytes c_uint32 | Unknown data | hex: 0x20 dec: 32 |
0x24 | 4 bytes c_uint32 | could be a separator | x00x00x00x00 |
0x28 | 4 bytes c_uint32 | First data block offset from the of the file Start block | hex: 0x2c0 dec: 704 |
0x2c | 4 bytes c_uint32 | could be a separator | x00x00x00x00 |
0x30 | 4 bytes c_uint32 | Unknown data (0x0120->8193) | |
0x34, 0x38, 0x3c | 4 bytes * 3 c_uint32 | Unknown block of data: | x00x00x00x00 3 times |
Start containers header metadata (11 blocks) (datasheet below represents only 1 of 11th data blocks) | |||
0x40 | 4 bytes c_uint32 | Container Header separator High | hex: 0x50 dec: 80 |
0x44 | 4 bytes c_uint32 | Container Header separator Low | hex: 0xFFFF |
End of container header metadata | |||
Containers data 1 block example represented | |||
0x48 | 8 bytes c_ulong | Block data size (in bytes) | |
0x50 | 4 bytes c_uint32 | data block start offset from the file beginning | |
0x54 | 4 bytes c_uint32 | Unknown data, could be an some sort of offsets | |
0x58 | 4 bytes c_uint32 | Skip the amount of bytes block (4h->4) | hex: 0x04 dec: 04 |
0x5c | 4 bytes c_uint32 | could be a separator useless block or just 8 byte for 0x58 block | x00x00x00x00 |
End of Containers header data | |||
End of Containers | |||
0x1A0 => 0x2Bf USER_DATA xxx representation in following format | |||
0x1A0 | 26 bytes c_char_p | string sequence | USER_DATA 000x00 |
0x1BA | 26 bytes c_char_p | string sequence | USER_DATA 001x00 |
And so on until USER_DATA 010\x00 sequence | |||
0x2bc | 4 bytes c_uint32 | separator | x00x00x00x00 |
End of File General Header |
Slot block¶
Note
Slot block data contains very useful information, stats, items, deaths count and so on. Char data offset means offsets from character start block. 0x2c0 + offset for 1 slot character and so on.
Char data offset | Size/Type | Explain | Value |
---|---|---|---|
0x6c | 4 Bytes c_uint32 | Health bar current | Depends on stats 600 |
0x70 | 4 Bytes c_uint32 | Health bar | Depends on stats 600 |
0x74 | 4 Bytes c_uint32 | Health bar | Depends on stats 600 |
0x78 | 4 Bytes c_uint32 | Unknown data | 0x7d |
0x7c | 4 Bytes c_uint32 | Unknown data | 0x7d |
0x80 | 4 Bytes c_uint32 | Unknown data | 0x7d |
0x84 | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x8c | 4 Bytes c_uint32 | Stamina 2 | Depends on stats max: 160 |
0x90 | 8 Bytes c_long | Stamina 3 | Depends on stats max: 160 |
0x98 | 8 Bytes c_long | Vitality | Depends on level and so on (30) |
0xa0 | 8 Bytes c_ulong | Attunement | Depends on level and so on (10) |
0xa8 | 8 Bytes c_ulong | Endurance | Depends on level and so on (50) |
0xb0 | 8 Bytes c_ulong | Strength | Depends on level and so on (50) |
0xb8 | 8 Bytes c_ulong | Dextirity | Depends on level and so on (20) |
0xc0 | 8 Bytes c_ulong | Intelligence | Depends on level and so on (10) |
0xc8 | 8 Bytes c_ulong | Faith | Depends on level and so on (10) |
0xd0 | 8 Bytes c_ulong | Unknown data | |
0xd8 | 8 Bytes c_ulong | Humanity | Depends on level and so on (00) |
0xe0 | 8 Bytes c_long | Resistance | Depends on level and so on (11) |
0xe8 | 4 Bytes c_uint32 | Level | Depends on level and so on (11) |
0xec | 4 Bytes c_uint32 | Souls | Depends on level and so on (9312) |
0xf0 | 8 Bytes c_ulong | Earned souls | Depends on level and so on (9991) |
0xf8 | 4 Bytes c_uint32 | Unknown data Could be separator | 0x00000000 |
0xfc | 4 Bytes c_uint32 | Soul statement: hollow, human (could be other state statuses) | 0x00000000 - human 0x00000008 - hollow |
0x100 | 28 Bytes c_char_p | Character’s name | Depends on your imagination (Nick) |
0x122 | 1 Bytes c_bool | Male | Depends on your choice (1) |
0x126 | 1 Bytes c_uint8 | Class | Depends on your choice (6) |
0x127 | 1 Bytes c_uint8 | Body | Depends on your choice (0) |
0x128 | 1 Bytes c_uint8 | Gift | Depends on your choice (1) |
0x129 | 1 Bytes c_uint8 | Unknown data | |
0x12a | 1 Bytes c_uint8 | Unknown data | |
0x12b | 1 Bytes c_uint8 | Unknown data | |
0x12c | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x130 | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x134 | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x138 | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x13с | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x140 | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x144 | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x148 | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x14с | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x150 | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x154 | 4 Bytes c_uint32 | Unknown data | 0x00000000 |
0x158 | 1 Bytes c_uint8 | Poison resistance | Depends on your items and armour |
0x15c | 1 Bytes c_uint8 | Bleeding resistance | Depends on your items and armour |
0x160 | 1 Bytes c_uint8 | Poison resistance (could be repeated or something) | Depends on your items and armour |
0x164 | 1 Bytes c_uint8 | Damnation resistance | Depends on your items and armour |
0x168 | 1 Bytes c_uint8 | Face | Depends on your choice (6) |
0x16c | 1 Bytes c_uint8 | Face | Depends on your choice (6) |
0x16d | 1 Bytes c_uint8 | Hairs | Depends on your choice (6) |
0x16e | 1 Bytes c_uint8 | Color | Depends on your choice (6) |
skip | |||
0x228 | 4 Bytes c_uint32 | Left arrows slot | Unknown data type |
0x22c | 4 Bytes c_uint32 | Left bolts slot | Unknown data type |
0x230 | 4 Bytes c_uint32 | Right arrows slot | Unknown data type |
0x234 | 4 Bytes c_uint32 | Right bolts slot | Unknown data type |
0x238 | 4 Bytes c_uint32 | Unknown item slot? | Unknown data type |
0x23c | 4 Bytes c_uint32 | Unknown item slot? | Unknown data type |
0x240 | 4 Bytes c_uint32 | Unknown item slot? | Unknown data type |
0x244 | 4 Bytes c_uint32 | Unknown item slot? | Unknown data type |
0x248 | 4 Bytes c_uint32 | Unknown item slot? | Unknown data type |
0x24c | 4 Bytes c_uint32 | Left ring slot | Unknown data type |
0x250 | 4 Bytes c_uint32 | Right ring slot | Unknown data type |
0x254 | 4 Bytes c_uint32 | First quick slot item type | Unknown data |
0x258 | 4 Bytes c_uint32 | Second quick slot item type | Unknown data |
0x25c | 4 Bytes c_uint32 | Third quick slot item type | Unknown data |
0x260 | 4 Bytes c_uint32 | Fourth quick slot item type | Unknown data |
0x264 | 4 Bytes c_uint32 | Fifth quick slot item type | Unknown data |
0x268 | 4 Bytes c_uint32 | One hand/Double hand switcher weapon use | 0x00000001 - 1 hand 0x00000003 - doubled |
0x26c | 4 Bytes c_uint32 | Left hand weapon/shield flag | 0x00000001 or 0x00000000 |
0x270 | 4 Bytes c_uint32 | Right hand weapon/sheild flag | 0x00000001 or 0x00000000 |
0x274 | 4 Bytes c_uint32 | Unknown flag, could possible switch something | 0x00000001 or 0x00000000 |
0x278 | 4 Bytes c_uint32 | Unknown flag, could possible switch something | 0x00000001 or 0x00000000 |
0x27c | 4 Bytes c_uint32 | Unknown flag, could possible switch something | 0x00000001 or 0x00000000 |
0x280 | 4 Bytes c_uint32 | Unknown flag, could possible switch something | 0x00000001 or 0x00000000 |
0x284 | 4 Bytes c_uint32 | Left hand weapon/shield first slot | Weapon/Armour type knife: 100015 |
0x288 | 4 Bytes c_uint32 | Left hand weapon/shield second slot | Weapon/Armour type knife: 100015 |
0x28c | 4 Bytes c_uint32 | Right hand weapon/shield first slot | Weapon/Armour type knife: 100015 |
0x290 | 4 Bytes c_uint32 | Right hand weapon/shield second slot | Weapon/Armour type knife: 100015 |
0x294 | 4 Bytes c_uint32 | Left arrows slot | Item type or 0xffffffff |
0x298 | 4 Bytes c_uint32 | Left bolts slot | Item type or 0xffffffff |
0x29с | 4 Bytes c_uint32 | Right arrows slot | Item type or 0xffffffff |
0x2a0 | 4 Bytes c_uint32 | Right bolts slot | Item type or 0xffffffff |
0x2a4 | 4 Bytes c_uint32 | Head wearing slot | Head (armour type) |
0x2a8 | 4 Bytes c_uint32 | Body wearing slot | Body (armour type) |
0x2ac | 4 Bytes c_uint32 | Hands wearing slot | Hands (armour type) |
0x2b0 | 4 Bytes c_uint32 | Legs wearing slot | Legs (armour type) |
0x2b4 | 4 Bytes c_uint32 | Something that points on some item in the inventory | Rings (item type) |
0x2b8 | 4 Bytes c_uint32 | Left ring slot | Rings (item type) |
0x2bc | 4 Bytes c_uint32 | Right ring slot | Rings (item type) |
0x2c0 | 4 Bytes c_uint32 | First quick slot item type | Any accessible item type (203 for ex.) |
0x2c4 | 4 Bytes c_uint32 | Second quick slot item type | Any accessible item type (203 for ex.) |
0x2c8 | 4 Bytes c_uint32 | Third quick slot item type | Any accessible item type (203 for ex.) |
0x2cc | 4 Bytes c_uint32 | Fourth quick slot item type | Any accessible item type (203 for ex.) |
0x2d0 | 4 Bytes c_uint32 | Fifth quick slot item type | Any accessible item type (203 for ex.) |
0x2d4 | 4 Bytes c_uint32 | Backpack items amount | Depends 34 |
0x2d8 | 4 Bytes c_uint32 | Unknown data | |
0x2dc | 4 Bytes c_uint32 | Unknown data | |
End of stats block | |||
0x2e0 | Start block for your backpack | ||
skip (each storage item allocates 4 * 7 bytes of space) see item storage block description below | |||
0xe2e0 | End block of your backpack last item storage points on 0xe2c4 | ||
skip | |||
0xe344 | 4 Bytes c_uint32 | Active spell slot | Depends on your sorcery slots amount and spells bind |
0xe35c | 4 Bytes c_uint32 | Active slot of something | Unknown type of data |
skip | |||
0x1f128 | 4 Bytes c_uint32 | Deaths | Depends on your skill :D (155) |
0x1f138 | 4 Bytes c_uint32 | Something really tasty, could be boss deaths (may be) |
Start block¶
Stats¶
Note
All character statistics depending on items/primary stats (vitality->resistance) are dynamicly-calculated type of data. So there’s no reason to store it or modify it via runtime. Therefore only two of this type of data present in the table below. it’s Capacity and Physical defence.
Note
General stats such like as Vitality, Attunement, Strength and so on stored in RAM with given offsets listed in 3rd table column. But their real address slightly different from save file one, be warned. For example if Vitality has 0x7C563C00 address then Attunement is certainly with 0x08 offset further and stored into 0x7C563C08
Parameter | Amount of memory entries (ingame) | Amount of store entries (save file) |
---|---|---|
Stamina | 3 slots, 4 byte | BFI + 0x88 (and 0x8c, 0x90) |
Vitality | 1 slot, 4 byte | BFI + 0x98 |
Attunement | 1 slot, 4 byte | BFI + 0xa0 |
Endurance | 1 slot, 4 byte | BFI + 0xa8 |
Strength | 1 slot, 4 byte | BFI + 0xb0 |
Dexterity | 1 slot, 4 byte | BFI + 0xb8 |
Intel. | 1 slot, 4 byte | BFI + 0xc0 |
Faith | 1 slot, 4 byte | BFI + 0xc8 |
Unknown | 1 slot, 4 byte (unsigned) | BFI + 0xd0 |
Humanity | 1 slot, 4 byte | BFI + 0xd8 |
Resistance | 1 slot, 4 byte | BFI + 0xe0 |
Level | 1 slot, 4 byte | BFI + 0xe8 |
Souls | 1 slot, 4 byte | BFI + 0xec |
Collected Souls | 1 slot, 4 byte | BFI + 0xf0 |
Name | 1 slot, 28 byte 13*2 = name, 1 = 0x00 | BFI + 0x100 |
Gender (male) | 1 slot, 1 byte 0 - female, 1 - male | BFI + 0x122 |
Class | 1 slot, 1 byte | BFI + 0x126 |
Body | 1 slot, 1 byte | BFI + 0x127 |
Gift | 1 slot, 1 byte | BFI + 0x128 |
Face | 1 slot, 1 byte | BFI + 0x16c |
Haris | 1 slot, 1 byte | BFI + 0x16d |
Color | 1 slot, 1 byte | BFI + 0x16e |
Deaths | 1 slot, 1 byte | BFI + 0x1f128 |
Dynamicly-calculated data | ||
Capacity | 2 slots 4 byte float (evaluateable) | Offsets don’t concure with memory ones |
Physical defence | 6 slots 4 byte (evaluateable) | Offsets do not concure with memory offsets |
Items¶
General items and weapons/armour structure¶
from ctypes import
weapon_proto_structure = {
'stored': c_uint32, # see table below
'type': c_uint32, # item type
'amount', c_uint32, # have amount
'position': c_uint32, # position?
'have': c_uint32, # have
'durability': c_uint32, # item durability
'durability_hits': c_uint32, # 0->9
}
Field | Possible values | Explanation |
---|---|---|
stored |
|
|
type | see Items type and so on | item/weapon/armour type |
amount | 0x00000000 to 0xFFFFFFFF probably | how much do you have it? |
position | some big numbers (didn’t parsed for till moment) | could be some pointer or address for backpack navigation |
have | 0x00000001 or 0x00000000 yes or no | do you have it? |
durability | Depends on weapon or armour | Depends on item if it has dur. statement |
durability_hits | 0x00000000 to 0x00000009 | Stack counter from 0 to 9 each circle weapon or armour losts its durability point |
Items type¶
Item Type | Ingame Item title |
---|---|
General items | |
0x65 (100) | White chalk |
0x66 (101) | Red chalk |
0x67 (102) | Red eye |
0x68 (103) | Black Separation Crystal |
0x6a (106) | Orange chalk |
0x6c (108) | Book of the Guilty |
0x6d (109) | Death eye |
0x6f (111) | Cracked red eye orb |
0x70 (112) | Servant Roster |
0x71 (113) | Blue eye orb |
0x72 (114) | Dragon eye orb |
0x73 (115) | Black eye orb |
0x74 (116) | Black eye orb #2 |
0x75 (117) | Mark of the darkness |
0x76 (118) | Violet coward crystal |
0x90 (144) | Darkness sign |
0xС8 (200) | Estus Flask (empty) |
0xC9 (201) | Estus Flask (active) |
0xCA (202) | Estus Flask (empty) |
0xCB (203) | Estus Flask +1 |
0xCC (204) | Estus Flask +1 (empty) |
0xCD (205) | Estus Flask +2 |
0xCE (206) | Estus Flask +3 (empty) |
0xCF (207) | Estus Flask +3 |
0xD0 (208) | Estus Flask +4 (empty) |
0xD1 (209) | Estus Flask +4 |
0xD2 (210) | Estus Flask +5 (empty) |
0xD3 (211) | Estus Flask +5 |
0xD4 (212) | Estus Flask +6 (empty) |
0xD5 (213) | Estus Flask +6 |
0xD6 (214) | Estus Flask +7 (empty) |
0xD7 (215) | Estus Flask +7 |
General Items #2 | |
0xDC (220) | Silver neckle |
0xE6 (230) | Elisabeth Mushroom |
0xF0 (240) | Heaven’s blessing |
0x104 (260) | Green flower |
0x10e (270) | Red moss |
0x10f (271) | Purple moss |
0x110 (272) | Purple blooming moss |
0x110 (274) | Stone of repel |
0x113 (275) | Eggs medicine |
0x118 (280) | Fixment powder |
0x122 (290) | Throwing knife |
0x123 (291) | Poisoned throwing knife |
0x124 (292) | Fire bomb |
0x125 (293) | Manure pie |
0x126 (294) | Nice skull |
0x10e (296) | LLoyd’s charm |
0x129 (297) | Black bomb |
0x136 (310) | Black gum (resin) |
0x137 (311) | Golden gum (resin) |
0x138 (312) | Short duration damnation |
0x139 (313) | Rotten gum (resin) |
0x14a (330) | Bone of return |
0x15e (350) | Humanity |
0x172 (370) | Shiny stone |
0x172 (371) | Field glasses |
0x175 (373) | List of charge |
0x176 (374) | Mark (sign) of retribution |
0x177 (375) | Medal of the light |
0x178 (376) | Neckle |
0x179 (377) | Stone with gragon head |
0x17a (378) | Stone with dragon body |
0x17c (380) | Trash |
0x17d (381) | Copper coin |
0x17e (382) | Silver coin |
0x17f (383) | Golden coin |
0x180 (384) | Strange doll |
0x181 (385) | Dried finger |
0x186 (390) | Keeper of fire soul |
0x187 (391) | Keeper of fire soul (no mistake there’s one more) |
0x188 (392) | Keeper of fire soul (no mistake there’s one more) |
0x189 (393) | Keeper of fire soul (no mistake there’s one more) |
0x18a (394) | Keeper of fire soul (no mistake there’s one more) |
0x18b (395) | Keeper of fire soul (no mistake there’s one more) |
0x18c (396) | Keeper of fire soul (no mistake there’s one more) |
0x190 (400) | Soul of the lost undead |
0x18e (401) | Big soul of the lost undead |
0x18f (402) | Soul of nameless soldier |
0x190 (403) | Big soul of nameless soldier |
0x191 (404) | Soul of a Proud Knight |
0x192 (405) | Big soul of a Proud Knight |
0x193 (406) | Soul of a Brave Warrior |
0x194 (407) | Big soul of a Brave Warrior |
0x195 (408) | Soul of a Hero |
0x196 (409) | Soul of a Great Hero |
0x1f4 (500) | Humanity |
0x1f5 (501) | Double humanity |
0x1fe (510) | Sign “hello” |
0x1ff (511) | Sign “thanks” |
0x200 (512) | Sign “perfect” (gj, gd, whatever) |
0x201 (513) | Sign “sorry” |
0x2BC (700) | Soul of Sif |
0x2BD (701) | Soul of Quelaag |
0x2BE (702) | Soul of Gwynn |
0x2BF (703) | Soul of Iron Golem |
0x2C0 (704) | Soul of Ornstein |
0x2C1 (705) | Soul of Moonlight butterfly |
0x2C2 (706) | Soul of Smough |
0x2C3 (707) | Soul of Priscilla |
0x2C4 (708) | Soul of Gwyndolin |
0x2C5 (709) | Soul of Sentinel |
0x2C6 (710) | Soul of Artorias |
0x2C7 (710) | Soul of Manus |
0x320 (800) | Big coal |
0x321 (801) | Very big coal |
0x322 (802) | Crystal coal |
0x326 (806) | Big magic coal |
0x327 (807) | Charmed coal |
0x328 (808) | Heaven’s coal |
0x329 (809) | Big heaven’s coal |
0x32a (810) | Coal of darkness |
0x32c (812) | Big coal of fire |
Forge items #2 | |
0x3e8 (1000) | Titanite Shard |
0x3f2 (1010) | Large Titanite Shard |
0x3fc (1020) | Green Titanite Shard |
0x406 (1030) | Titanite chunk |
0x410 (1040) | Blue Titanite chunk |
0x41a (1050) | White Titanite chunk |
0x424 (1060) | Red Titanite chunk |
0x42e (1070) | Titanite slab |
0x438 (1080) | Blue Titanite slab |
0x442 (1090) | White Titanite slab |
0x44c (1100) | Red Titanite slab |
0x456 (1110) | Dragon scales |
0x460 (1120) | Demonic titanite |
0x46a (1130) | Twinkling titanite |
0x7d1 (2001) | Cellar Key |
0x7d2 (2002) | Artorias symbol |
0x7d3 (2003) | Cage Key |
0x7d4 (2004) | Archive’s prison key |
Stuff | |
0x7d5 (2005) | –The– Key |
0x7d6 (2006) | –The– Key |
0x7d7 (2007) | –The– Key |
0x7d8 (2008) | –The– Key |
0x7d9 (2009) | –The– Key |
0x7da (2010) | –The– Key |
0x7db (2011) | –The– Key |
0x7dc (2012) | –The– Key |
0x7dd (2013) | –The– Key |
0x7de (2014) | –The– Key |
0x7df (2015) | –The– Key |
0x7e0 (2016) | –The– Key |
0x7e1 (2017) | –The– Key |
0x7e2 (2018) | –The– Key |
0x7e3 (2019) | –The– Key |
0x7e4 (2020) | –The– Key |
0x7e5 (2021) | –The– Key |
0x7e6 (2022) | –The– Key |
0x9c4 (2500) | The Great Soul |
0x9c5 (2501) | The Great Soul #2 |
0x9c6 (2502) | Shard of great soul |
0x9c7 (2503) | Shard of great soul #2 |
0x9ce (2510) | Lordvessel |
0x9d8 (2520) | Broken neckle |
0xa28 (2600) | Blacksmith’s box |
0xa29 (2601) | Blacksmith’s armour box |
0xa2a (2602) | Repair’s box |
0xa2b (2603) | Unknown Receipt #1 |
0xa2c (2604) | Unknown key #1 |
0xa2d (2605) | Unknown key #2 |
0xa2e (2606) | Unknown key #3 |
0xa2f (2607) | Rite of Kindling |
0xa30 (2608) | Limitless box |
0xa2f (2609) | Unknown key #4 |
Sorcery | |
0xbb8 (3000) | Sorcery: soul arrow |
0xbc2 (3010) | Sorcery: big soul arrow |
0xbcc (3020) | Sorcery: heavy soul arrow |
0xbd6 (3030) | Sorcery: huge soul arrow |
0xbe0 (3040) | Sorcery: Homing Soulmass |
0xbea (3050) | Sorcery: Crystal Soulmass |
0xbf4 (3060) | Sorcery: Soul spear |
0xbfe (3070) | Sorcery: Crystal soul spear |
0xc1c (3100) | Magic weapon |
0xc26 (3110) | Sorcery: big magic weapon |
0xc30 (3120) | Sorcery: crystal magic weapon |
0xce4 (3300) | Sorcery: magic shield |
0xcee (3310) | Sorcery: strong magic shield |
0xd48 (3400) | Sorcery: hidden weapon |
0xd52 (3410) | Sorcery: hidden body |
0xd52 (3500) | Sorcery: cast light |
0xdb6 (3510) | Sorcery: hush |
0xdсa (3530) | Sorcery: repair |
0xdd4 (3540) | Sorcery: fall control |
0xdde (3550) | Sorcery: chameleon |
0xe10 (3600) | Sorcery: resist Curse |
0xe1a (3610) | Sorcery: cure |
0xe74 (3700) | Sorcery: breath of the white dragon |
0xe7e (3710) | Sorcery: dark orb |
0xe88 (3720) | Sorcery: dark bead |
0xe92 (3730) | Sorcery: fog of darkness |
0xe9с (3740) | Sorcery: Pursuers |
Pyromancy | |
0xfa0 (4000) | Pyromancy: Fire bead |
0xfaa (4010) | Pyromancy: Fire orb |
0xfb4 (4020) | Pyromancy: Big fire orb |
0xfbe (4030) | Pyromancy: Fire storm |
0xfc8 (4040) | Pyromancy: Fire tempest |
0xfd2 (4050) | Pyromancy: Fire surge |
0xfdc (4060) | Pyromancy: Fire whip |
0x1004 (4100) | Pyromancy: Combustion |
0x100e (4110) | Pyromancy: Great combustion |
0x1068 (4200) | Pyromancy: Poison mist |
0x1072 (4210) | Pyromancy: Toxic mist |
0x107c (4220) | Pyromancy: Acid surge |
0x10cc (4300) | Pyromancy: Iron flesh |
0x10d6 (4310) | Pyromancy: Flesh sweat |
0x1130 (4400) | Pyromancy: Power within |
0x1194 (4500) | Pyromancy: Big chaos orb |
0x119e (4510) | Pyromancy: Chaos storm |
0x11a8 (4520) | Pyromancy: Chaos fire whip |
Miracles (names of the spells not included yet) | |
0x1388 (5000) | Miracles: Heal |
0x1388 (5010) | Miracles: Heal |
0x1388 (5020) | Miracles: Heal |
0x1388 (5030) | Miracles: Heal |
0x1388 (5040) | Miracles: Heal |
0x1388 (5050) | Miracles: Heal |
0x1388 (5100) | Miracles: Heal |
0x1388 (5110) | Miracles: Heal |
0x1388 (5200) | Miracles: Heal |
0x1388 (5210) | Miracles: Heal |
0x1388 (5300) | Miracles: Heal |
0x1388 (5310) | Miracles: Heal |
0x1388 (5320) | Miracles: Heal |
0x1388 (5400) | Miracles: Heal |
0x1388 (5500) | Miracles: Heal |
0x1388 (5510) | Miracles: Heal |
0x1388 (5520) | Miracles: Heal |
0x1388 (5600) | Miracles: Heal |
0x1388 (5610) | Miracles: Heal |
0x1388 (5700) | Miracles: Heal |
0x1388 (5800) | Miracles: Heal |
0x1388 (5810) | Miracles: Heal |
0x1388 (5900) | Miracles: Heal |
0x1388 (5910) | Miracles: Heal |
Emoticons (names are not included yet) | |
0x1388 (9000) | Emotions: Bow |
0x1388 (9001) | Emotions: Bow |
0x1388 (9002) | Emotions: Bow |
0x1388 (9003) | Emotions: Bow |
0x1388 (9004) | Emotions: Bow |
0x1388 (9005) | Emotions: Bow |
0x1388 (9006) | Emotions: Bow |
0x1388 (9007) | Emotions: Bow |
0x1388 (9008) | Emotions: Bow |
0x1388 (9009) | Emotions: Bow |
0x1388 (9010) | Emotions: Bow |
0x1388 (9011) | Emotions: Bow |
0x1388 (9012) | Emotions: Bow |
0x1388 (9013) | Emotions: Bow |
0x1388 (9014) | Emotions: Bow |
0x1388 (9015) | Emotions: Bow |
Weapons and armour type¶
Weapon Type | Ingame Item title |
---|---|
Weapons | |
900000 | Bare hands/Nothing head |
901000 | Nothing weared body |
902000 | Nothing weared hands |
903000 | Nothing weared legs |
100000-100015 | Dagger (up to +15) |
103000-100015 | Bandit’s knife (up to +15) |
852000-852005 | Demonic Hummer (up to +5) |
Multiplayer data¶
60 bytes each account entry
from ctypes import
weapon_proto_structure = {
'marker1': c_uint32, # (0x100) flag
'marker2': c_uint32, # (0x3400) flag
'byte_1': c_byte, # probably flag
'name': c_char_p(16), # char's name 14 + \x00 * 2
'byte_2': c_byte, # probably flag
'byte_3': c_byte, # probably flag
'byte_4': c_byte, # probably flag
'statement_1': c_uint32, # player's data
'statement_2': c_uint32, # player's data
'statement_3': c_uint32, # player's data
'statement_4': c_uint32, # player's data
'statement_5': c_uint32, # player's data
'statement_6': c_uint32, # player's data
'statement_7': c_uint32, # player's data
'statement_8': c_uint32, # player's data
}