I made a simple autosplitter in python since i dont know c# (needed for autosplitter)
1 year ago
Russia

U need to change memory address and pid. U can find your own memory address you need via this algorithm

  1. Launch 5K and enter area12 raid. Type /god in chat
  2. Launch Cheat Engine
  3. Choose 5K in cheat engine as main process. Search for UTF-16 NOT case sensitive string "Godmode enabled" in ALL processes
  4. You will get 5-10 memory addresses.
  5. Now walk right to the door and put your mouse over keypad to trigger PRESS TO writing.
  6. One of your memory addresses have switched its state to PRESS TO. This is the address you need! This memory value you received is connected to the latest string that game typed on screen.

You can find PID of Pandemic.exe via default windows task manager (and google)

WING 101 is a free python IDE that is easily downloaded. You just copypaste code below, put in memory address, PID, press green button while being in main menu of the game, and enjoy your livesplit! Feel free to contact me via discord PlushRei#6482 or here

UPD - code is messed up. Dont know how to put it in properly(((

UPD2 - well formatting is important while copypasting. I will do smth to it later

import ctypes import time

address = 0x1EA21B19404 process_handle = ctypes.windll.kernel32.OpenProcess(0x10, False, <PID_HERE>) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') area1 = "Explore Logistic" area2 = "ENTRANCE ZONE" area3 = "OFFICES" area4 = "GENERATOR ROOM" area5 = "WATER TREATMENT" area6 = "CANALS" area7 = "TRANSPORT HALLS" area8 = "COMMON ROOM" area9 = "SERVER ROOM" area10 = "REACTOR ROOM" area11 = "REACTOR CHAMBER" area12 = "TRANSPORT BAY" area13 = "NICE WORK"

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area1 in value: print("MOUTAINSIDE ABOBUS FACILITY") break # else: # print(value)

start_time = time.time() # запускаем таймер elapsed_time = time.time() - start_time print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area2 in value: print("ENTRANCE ABOBUS ZONE") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area3 in value: print("OFFICES ABOBUS") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area4 in value: print("GENERATOR ABOBUS ROOM") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area5 in value: print("WATER ABOBUS TREATMENT") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area6 in value: print("CANALS ABOBUS") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area7 in value: print("TRANSPORT ABOBUS HALLS") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area8 in value: print("COMMON ABOBUS ROOM") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area9 in value: print("SERVER ABOBUS ROOM") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area10 in value: print("REACTOR ABOBUS ROOM") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area11 in value: print("REACTOR ABOBUS CHAMBER") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area12 in value: print("TRANSPORT ABOBUS BAY") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

while True: time.sleep(0.033) buffer = ctypes.create_string_buffer(32) ctypes.windll.kernel32.ReadProcessMemory(process_handle, ctypes.c_ulonglong(address), buffer, 32, None) value = buffer.raw.decode('utf-16le') if area13 in value: print("NICE ABOBUS WORK") break # else: # print(value)

elapsed_time = time.time() - start_time # вычисляем время, прошедшее с момента запуска таймера print("Время: {:.3f} секунд".format(elapsed_time), flush=True) # выводим время на экран с миллисекундами

Edited by the author 1 year ago
Game stats
Followers
48
Runs
80
Players
33
Latest news
v0.13 Outpost Axiom Submissions

Hello SCP: 5K Speedrunners!

I am making an exception to Hunt runs: runs are able to be submitted as long as you make it to the truck (regroup objective is currently broken). Timing will add +2 minutes to LRT. Runs will be reviewed on a case-by-case basis, factoring in player skill as well.

There i

1 year ago