#pragma once #pragma pattern_limit 1500000 #include struct header { u8 unk[3]; bool flag; u8 unk2; u32 amountOfItems; }; struct AttributeStats{ u32 Strength; u32 Dexterity; u32 Intelligence; u32 Vitality; u32 Luck; u32 Wisdom; }; // Most likely values related to scaling other attributes, health etc. struct ScalingValues { float a; float b; u32 c; u32 d; u32 e; u32 f; u32 g; u32 h; u32 i; u32 j; u32 k; u32 l; u32 m; u32 n; u32 o; u32 p; u32 q; u32 r; u32 s; }; enum CharacterJob : u32 { NULL, Swordsman = 1, /// 01 Mage, /// 02 Thief, /// 03 Scout, /// 04 Warrior, /// 05 Knight, /// 06 Priest, /// 07 Wizard, /// 08 Rogue, /// 09 Ninja, /// 10 Gunner, /// 11 Archer, /// 12 Berserker, /// 13 Pladin, /// 14 Saint, /// 15 Warlock, /// 16 Knave, /// 17 Assassin, /// 18 Gunslinger, /// 19 Ranger, /// 20 Juggernaut, /// 21 Temple_Knight, /// 22 Exorcist, /// 23 Necromancer, /// 24 Raider, /// 25 Nightstalker, /// 26 Sharpshooter, /// 27 Beast_Keeper, /// 28 }; struct BaseCharacterStat{ CharacterJob Id; u8 unk[12]; AttributeStats stats; padding[16]; ScalingValues scaleValues; padding[428-40-16-sizeof(ScalingValues)]; }; std::print(std::format("{}",sizeof(BaseCharacterStat))); std::assert(sizeof(BaseCharacterStat) == 428, "Struct isn't the right size"); header header @ 0x00; BaseCharacterStat stats[header.amountOfItems] @ 0x09;