def edit_stats(self, level=None, gold=None, strength=None, dexterity=None, intelligence=None, skill_points=None, attr_points=None): # Offsets (verify with your save version) offsets = 'level': 0x44, 'exp': 0x48, 'gold': 0x4C, 'strength': 0x50, 'dexterity': 0x54, 'intelligence': 0x58, 'health': 0x5C, 'mana': 0x60, 'skill_points': 0x64, 'attr_points': 0x68 if level is not None: self.set_int(offsets['level'], level) if gold is not None: self.set_int(offsets['gold'], gold) if strength is not None: self.set_int(offsets['strength'], strength) if dexterity is not None: self.set_int(offsets['dexterity'], dexterity) if intelligence is not None: self.set_int(offsets['intelligence'], intelligence) if skill_points is not None: self.set_int(offsets['skill_points'], skill_points) if attr_points is not None: self.set_int(offsets['attr_points'], attr_points)
/data/data/com.handygames.titanquestlegends/files/SaveData/ Each character has a .que file (e.g., Character1.que ). The .que file structure (simplified): Titan Quest Android Save Editor
def show_info(self): name = self.get_string(0x04) level = self.get_int(0x44) gold = self.get_int(0x4C) self.name_label.config(text=f"Name: name") self.level_label.config(text=f"Level: level") self.gold_label.config(text=f"Gold: gold") # Populate entries with current values self.entries["Level"].delete(0, tk.END) self.entries["Level"].insert(0, str(level)) self.entries["Gold"].delete(0, tk.END) self.entries["Gold"].insert(0, str(gold)) self.entries["Strength"].delete(0, tk.END) self.entries["Strength"].insert(0, str(self.get_int(0x50))) self.entries["Dexterity"].delete(0, tk.END) self.entries["Dexterity"].insert(0, str(self.get_int(0x54))) self.entries["Intelligence"].delete(0, tk.END) self.entries["Intelligence"].insert(0, str(self.get_int(0x58))) self.entries["Skill Points"].delete(0, tk.END) self.entries["Skill Points"].insert(0, str(self.get_int(0x64))) self.entries["Attr Points"].delete(0, tk.END) self.entries["Attr Points"].insert(0, str(self.get_int(0x68))) tk.END) self.entries["Skill Points"].insert(0
if not os.path.exists(save_path): print("Save file not found. Adjust path.") exit(1) tk.END) self.entries["Attr Points"].insert(0
def save(self): with open(self.filepath, 'wb') as f: f.write(self.data) print("Save file written.")
def show_info(self): name_offset = 0x04 name = self.get_string(name_offset) level = self.get_int(0x44) gold = self.get_int(0x4C) skill_pts = self.get_int(0x64) attr_pts = self.get_int(0x68) print(f"Name: name") print(f"Level: level") print(f"Gold: gold") print(f"Skill Points: skill_pts") print(f"Attribute Points: attr_pts") if name == " main ": # Change this to your actual save path save_path = "/storage/emulated/0/Android/data/com.handygames.titanquestlegends/files/SaveData/Character1.que"