state("Hoomanz-Win64-Shipping"){} startup { Assembly.Load(File.ReadAllBytes("Components/asl-help")).CreateInstance("Basic"); vars.Helper.GameName = "Hoomanz!"; vars.Helper.AlertLoadless(); vars.completedSplits = new HashSet(); } init { //UE5.06 IntPtr gWorld = vars.Helper.ScanRel(3, "48 8B 1D ???????? 48 85 DB 74 ?? 41 B0 01"); IntPtr gEngine = vars.Helper.ScanRel(3, "48 8B 0D ???????? 48 8B 89 ???????? E8"); IntPtr fNamePool = vars.Helper.ScanRel(7, "8B D9 74 ?? 48 8D 15 ???????? EB"); IntPtr gSyncLoad = vars.Helper.ScanRel(21, "33 C0 0F 57 C0 F2 0F 11 05"); vars.FNameToString = (Func)(fName => { var nameIdx = (fName & 0x000000000000FFFF) >> 0x00; var chunkIdx = (fName & 0x00000000FFFF0000) >> 0x10; var number = (fName & 0xFFFFFFFF00000000) >> 0x20; // IntPtr chunk = vars.Helper.Read(fNamePool + 0x10 + (int)chunkIdx * 0x8); IntPtr chunk = vars.Helper.Read(fNamePool + 0x10 + (int)chunkIdx * 0x8); IntPtr entry = chunk + (int)nameIdx * sizeof(short); int length = vars.Helper.Read(entry) >> 6; string name = vars.Helper.ReadString(length, ReadStringType.UTF8, entry + sizeof(short)); return number == 0 ? name : name + "_" + number; }); vars.FNameToShortString = (Func)(fName => { string name = vars.FNameToString(fName); int dot = name.LastIndexOf('.'); int slash = name.LastIndexOf('/'); return name.Substring(Math.Max(dot, slash) + 1); }); vars.FNameToShortString2 = (Func)(fName => { string name = vars.FNameToString(fName); int under = name.LastIndexOf('_'); return name.Substring(0, under + 1); }); vars.FNameToShortString3 = (Func)(fName => { string name = vars.FNameToString(fName); int check = name.IndexOf('.'); return name.Substring(check + 1); }); vars.Helper["GSync"] = vars.Helper.Make(gSyncLoad); vars.Helper["isLoading"] = vars.Helper.Make(gEngine, 0xC10, 0x78, 0x1B0, 0x2B0, 0x358); vars.Helper["lvlName"] = vars.Helper.MakeString(gEngine, 0xC10, 0x78, 0x228, 0x108, 0x1A0, 0x118, 0x0); vars.Helper["lvlFinished"] = vars.Helper.Make(gEngine, 0xC10, 0x78, 0x228, 0x108, 0x1A0, 0xA2); } update { vars.Helper.Update(); vars.Helper.MapPointers(); //print(vars.FNameToShortString3(current.GWorldName)); } onStart { vars.completedSplits.Clear(); } start { return !current.isLoading && old.isLoading && current.lvlName == "Onboarding"; } isLoading { return current.GSync || current.isLoading || current.lvlFinished; } split { return current.lvlFinished && !old.lvlFinished; } exit { timer.IsGameTimePaused = true; } onReset { vars.completedSplits.Clear(); }